前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Linux正则过滤命令ifconfig/ip提取IP地址

Linux正则过滤命令ifconfig/ip提取IP地址

作者头像
菲宇
发布2022-12-21 19:41:46
3.1K0
发布2022-12-21 19:41:46
举报
文章被收录于专栏:菲宇菲宇菲宇

Linux如何查看IP地址的命令,本人知道两种,分别是ifconfig和ip,至于具体用法,在这就不详细说了,我们的主要目标是用正则来过滤两者基本命令获取的内容以至于直接获得地址,但是我们还是必须了解两者获得的内容是不一样的。 首先,我们先来看看两者的基本命令输出的内容分别是什么。 命令ifconfig:

命令ifconfig内容
命令ifconfig内容

命令ip addr:

ip addr内容
ip addr内容

(注意:本人的工作环境是CentOS6.6,同时因为之前配置过网络,所以是修改过/etc/udev/rules.d/70-persistent-net.rules 里面的DEVICE=eth2,从而显示的IP地址是在eth2中,读者需要根据自己的工作环境来修改选取IP的地址的设备,适当把本文中的eth2改成eth1或者eth0或者不变。)

知道我们的目标之后,就应该分析我们用什么工具来处理这些内容呢? 命令grep: grep 则是分析一行讯息, 若当中有我们所需要的信息,就将该行拿出来。 简单的语法是这样的:

[dmtsai@study ~]$ grep [-acinv] [–color=auto] ‘搜寻字串’ filename 选项与参数: -a :将 binary 文件以 text 文件的方式搜寻数据 -c :计算找到 ‘搜寻字串’ 的次数 -i :忽略大小写的不同,所以大小写视为相同 -n :顺便输出行号 -v :反向选择,亦即显示出没有 ‘搜寻字串’ 内容的那一行! –color=auto :可以将找到的关键字部分加上颜色的显示喔!

命令 sed: sed 本身是一个管线命令,可以分析 standard input 的 而 且 sed 还可以将数据进行取代、删除、新增、撷取特定行等等的功能呢!

sed [-nefr] [动作] 选项与参数: -n :使用安静(silent)模式。在一般 sed 的用法中,所有来自 STDIN 的数据一般都会被列出到屏幕上。 但如果加上 -n 参数后,则只有经过 sed 特殊处理的那一行(或者动作)才会被列出来。 -e :直接在命令行界面上进行 sed 的动作编辑; -f :直接将 sed 的动作写在一个文件内, -f filename 则可以执行 filename 内的 sed 动作; -r :sed 的动作支持的是延伸型正则表达式的语法。(默认是基础正则表达式语法) -i :直接修改读取的文件内容,而不是由屏幕输出。 动作说明: [n1[,n2]]function n1, n2 :不见得会存在,一般代表“选择进行动作的行数”,举例来说,如果我的动作 是需要在 10 到 20 行之间进行的,则“ 10,20[动作行为] ” function 有下面这些咚咚: a :新增, a 的后面可以接字串,而这些字串会在新的一行出现(目前的下一行)~ c :取代, c 的后面可以接字串,这些字串可以取代 n1,n2 之间的行! d :删除,因为是删除啊,所以 d 后面通常不接任何咚咚; i :插入, i 的后面可以接字串,而这些字串会在新的一行出现(目前的上一行); p :打印,亦即将某个选择的数据印出。通常 p 会与参数 sed -n 一起运行~ s :取代,可以直接进行取代的工作哩!

而我们主要用的语法是:

sed ‘s/要被取代的字串/新的字串/g’

分析:

一、处理命令Ifconfig eth2 内容:

1、用命令“Ifconfig eth2” 输出基本内容:

这里写图片描述
这里写图片描述

2、用命令“| grep ‘inet ’”选出IP地址关键的一条:

这里写图片描述
这里写图片描述

3、 用命令 “| sed‘s/^.*addr://g’”去除IP地址前面的内容:

这里写图片描述
这里写图片描述

4、用命令 “sed s/Bcast.*$//g”去除IP地址后面的内容:

这里写图片描述
这里写图片描述

二、处理命令 ip addr show eth2内容: 1、用命令“ ip addr show eth2” 输出基本内容:

这里写图片描述
这里写图片描述

2、用命令“| grep ‘inet ’”选出IP地址关键的一条:

这里写图片描述
这里写图片描述

3、 用命令 “| sed ‘s/^.*inet //g’”去除IP地址前面的内容:

这里写图片描述
这里写图片描述

4、用命令 “|sed ‘s#/24.*$##g’”去除IP地址后面的内容:

这里写图片描述
这里写图片描述

(注意:这里因为遇到了要过滤“/”,所以我们就不再用“s///g”命令了,用“s###g”代替,而功能上是一样的,除此之外,我们还能用“s:::g”代替。)

这里写图片描述
这里写图片描述
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018-07-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 分析:
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档