文本处理工具之grep

三剑客之grep

grep是Linux下处理文本的命令,与sed和awk合称Linux三剑客。grep在man手册中的解释为打印匹配到的模式,grep真正强大之处在于支持正则表达式,下面介绍grep常用的选项。

–color=auto: 对匹配到的文本着色显示

此选项在centos7中默认别名并且添加到配置文件中,centos6中可以使用别名添加到~/.bashrc中,添加别名的方法为alias grep=”grep –color=auto”

-v: 显示不被pattern匹配到的行

此选项可简单理解为取反,但需注意的是”取反”是以行为单位的。在同一行”取反”一般不会有效果。

-i: 忽略字符大小写

在Linux中是严格区分大小写的,此选项可以实现同时匹配相同字符串的大小写,例如grep -i “ROOT” /etc/passwd,结果会把passwd文件中包含”ROOT”和”root”的行都显示出来。

-n:显示匹配的行号

会把显示的文件内容进行编上行号,而不是修改文件的内容。

-c: 统计匹配的行数

此选项的结果为一个数字,表示匹配到的行数,而不显示具体是哪些行被匹配到。

-o: 仅显示匹配到的字符串

此选项只显示匹配到的部分,而且字体是带有颜色的。

-q: 静默模式,不输出任何信息

匹配到还是匹配不到都不显示,只在后台反应,使用$?来从返回值判断命令是否正确执行

-A#: after, 后#行

显示匹配到行的后#行,不包括匹配到的行。

-B#: before, 前#行

显示匹配到行的前#行,不包括匹配到的行。

-C#:context, 前后各#行

显示匹配到行的前后各#行,不包括匹配到的行。

-e:实现多个选项间的逻辑or关系

grep –e root  –e bash /etc/passwd包含root或者bash的行。

-w:匹配整个单词

grep默认字母、数字、下划线为单词的一部分,不予匹配。

例如:

echo xabcy|grep -w abc(不匹配)

echo “x abc y”|grep -w abc(匹配)

echo “x,abc,y”|grep -w abc(匹配)

echo “x2abc3y”|grep -w abc(不匹配)

echo “x_abc_y”|grep -w abc(不匹配)

echo “x-abc-y”|grep -w abc(匹配)

-E:使用ERE(使用扩展的正则表达式)

-F:相当于fgrep,不支持正则表达式

-f 把过滤的类型添加到文件中进行匹配

例如新建p.txt文件,添加root bash,使用grep -f p.txt /etc/passwd进行匹配文件内的字符,相当于-e选项。

以上就是grep的常用选项。如还想对grep进行更深入的了解可以使用man grep进行查看。

本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/95397

(0)
七杀七杀
上一篇 2018-04-08
下一篇 2018-04-08

相关推荐

  • iproute家族命令

    1 ifconfig up 启动指定网络设备/网卡down 关闭指定网络设备/网卡-a 显示全部接口信息-s 显示摘要信息add 设置指定网卡配置IPv6地址del 删除指定网卡配置IPv6地址mtu<字节数> 设置网卡的最大传输单元(bytes)netmask<子网掩码>设置网卡的子网掩码multicast 为网卡设置组播标志 例子…

    Linux笔记 2018-04-15
  • elk

    转载,供日后回查

    2018-07-31
  • N31第二周

    1、Linux上的文件管理类命令都有哪些,其常用的方法及其相关示例演示: mkdir mkdir:创建目录 格式:mkdir [OPTION]… DIRECTORY… -m –mode=模式,设定权限<模式> (类似 chmod)  -p 此时若路径中的某些目录尚不存在,加上此选项后,系统将自动建立好那些尚不存在的目录, 即一次可以建立多…

    2018-06-26
  • 第四周Linux小总结

    sed工具;用法: sed [option]… ‘script’ inputfile…常用选项:-n:不输出模式空间内容到屏幕,即不自动打印[root@localhost ~]# sed -n -e “2p” -e “6p” f1 (2;6代表处理第几行)-e: …

    Linux笔记 2018-04-22
  • ansible实战应用之角色装nginx,httpd

    流程图如下: 上图表明: 1).tasks夹: .grupyml .useryml: 指定uid;gid,且最好uid和gid统一,这样好管理要;加入组中;一般来说建一个帐号是给特定的服务用的,一般来讲这个帐号 都是系统帐号;且它的shell类型,为了安全一般都是/sbin/nologin * 不确定uid号有没有人有的话,可以用#getent passwd…

    Linux笔记 2018-06-03