Linux文本处理工具-grep命令详解

11 篇文章 0 订阅

       grep是Linux中最常用的”文本处理工具”之一,grep与sed、awk合称为Linux中的三剑客。其实,除了grep命令,其实还有egrep命令,还有fgrep命令(fast grep),它们有各自的特点。

       grep:支持基本正则表达式 egrep:支持扩展正则表达式,相当于grep -E

       fgrep:不支持正则表达式,只能匹配写死的字符串,但是速度奇快,效率高。

       为了方便以后回顾,将grep的常用选项总结如下:

–color=auto

或者 –color:

表示对匹配到的文本着色显示(centeros7 以上默认有此功能,该参数可省略)
 -i在搜索的时候忽略大小写
-n显示结果所在行号
-c统计匹配到的行数,注意,是匹配到的总行数,不是匹配到的次数
-o只显示符合条件的字符串,但是不整行显示,每个符合条件的字符串单独显示一行
-v输出不带关键字的行(反向查询,反向匹配)
-w匹配整个单词,如果是字符串中包含这个单词,则不作匹配
-Ax在输出的时候包含结果所在行之后的指定行数,这里指之后的x行
-Bx在输出的时候包含结果所在行之前的指定行数,这里指之前的x行
-Cx在输出的时候包含结果所在行之前和之后的指定行数,这里指之前和之后的x行
-e使用”-e”选项可以同时匹配多个目标,多个目标之间存在”或”关系,即匹配其中的任意一个都算作匹配成功
-q静默模式,不输出任何信息,当我们只关心有没有匹配到,却不关心匹配到什么内容时,我们可以使用此命令,然后,使用”echo $?”查看是否匹配到,0表示匹配到,1表示没有匹配到
-P表示使用兼容perl的正则引擎。
-E使用扩展正则表达式,而不是基本正则表达式,在使用”-E”选项时,相当于使用egrep

举例:

以网络配置文件为例:

TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="none"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="ens32"
UUID="9f2dc0ed-5691-4925-8330-ff574f98b11f"
DEVICE="ens32"
ONBOOT="yes"
IPADDR="10.X.X.XXX"
PREFIX="24"
GATEWAY="10.X.X.1"
DNS1="114.114.114.114"
IPV6_PRIVACY="no"

 如果上述代码改为:grep "ipaddr"  /etc/sysconfig/network-scripts/ifcfg-ens32 则过滤不到想要的数据;可以加 -i 选项则不区分大小写,如下:

 -n 参数显示所在行号

 -c  匹配到的总行数

 -o 只显示符合条件的字符串,但是不整行显示,每个符合条件的字符串单独显示一行

 -v 输出不带关键字的行(反向查询,反向匹配)

 -w 匹配整个单词,如果是字符串中包含这个单词,则不作匹配

 -Ax  在输出的时候包含结果所在行之后的指定行数,这里指之后的x行  -A ->after

 -Bx 在输出的时候包含结果所在行之前的指定行数,这里指之前的x行  -B->before

 -Cx 在输出的时候包含结果所在行之前和之后的指定行数,这里指之前和之后的x行  -C->上下文

 -e 使用”-e”选项可以同时匹配多个目标,多个目标之间存在”或”关系,即匹配其中的任意一个都算作匹配成功

 -q 静默模式,不输出任何信息,当我们只关心有没有匹配到,却不关心匹配到什么内容时,我们可以使用此命令,然后,使用”echo $?”查看是否匹配到,0表示匹配到,1表示没有匹配到

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值