linux文本搜索命令-----grep

grep

grep是“global search regular expression and print out the line”的简称,意思是全面搜索正则表达式,并将其打印出来。这个命令可以结合正则表达式使用,它也是linux使用最为广泛的命令。

grep命令的选项用于对搜索过程的补充,而其命令的模式十分灵活,可以是变量、字符串、正则表达式。需要注意的是:一当模式中包含了空格,务必要用双引号将其引起来。

linux系统支持三种形式的grep命令,老大就是grep,标准,模仿的代表。老二兴趣爱好多-egrep,简称扩展grep命令,其实和grep -E等价,支持基本和扩展的正则表达式。老三跑的最快-fgrep,简称快速grep命令,其实和grep -F等价,不支持正则表达式,按照字符串表面意思进行匹配。

语法

grep [选项] 参数

选项

-a:不要忽略二进制数据。
-A<显示列数>:除了显示符合范本样式的那一行之外,并显示该行之后的内容。
-b:在显示符合范本样式的那一行之外,并显示该行之前的内容。
-c:计算符合范本样式的列数。
-C:<显示列数>或-<显示列数> 除了显示符合范本样式的那一列之外,并显示该列之前后的内容。
-d<进行动作>:当指定要查找的是目录而非文件时,必须使用这项参数,否则grep命令将回报信息并停止动作。
-e<范本样式>:指定字符串作为查找文件内容的范本样式。
-E:将范本样式为延伸的普通表示法来使用,意味着使用能使用扩展正则表达式。
-f:<范本文件> 指定范本文件,其内容有一个或多个范本样式,让grep查找符合范本条件的文件内容,格式为每一列的范本样式。
-F:将范本样式视为固定字符串的列表。
-G:将范本样式视为普通的表示法来使用。
-h 在显示符合范本样式的那一列之前,不标示该列所属的文件名称。
-H:在显示符合范本样式的那一列之前,标示该列的文件名称。
-i:忽略字符大小写的差别。
-l:列出文件内容符合指定的范本样式的文件名称。
-L:列出文件内容不符合指定的范本样式的文件名称。
-n:在显示符合范本样式的那一列之前,标示出该列的编号。
-q 不显示任何信息。
-R/-r:此参数的效果和指定“-d recurse”参数相同。
-s 不显示错误信息。
-v 反转查找。
-w:只显示全字符的列。
-x:只显示全列符的列。
-y:此参数效果跟“-i”相同。
-o:只输出文件中匹配到的部分。

常用实例

直接使用grep加上要搜索的字符串,后面跟上文件,即可对文件内容进行搜索

[root@linus ~]# grep root /etc/passwd
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin

搜索时忽略大小写

[root@linus ~]# grep -i ROOT /etc/passwd
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin

加上-n选项可查看到搜索字符串对应的行号

[root@linus ~]# grep root -n /etc/passwd
1:root:x:0:0:root:/root:/bin/bash
10:operator:x:11:0:operator:/root:/sbin/nologin

反向过滤加上-v选项

[root@linus ~]# grep -v root /etc/passwd
...

使用grep过滤掉以#开头的行和空行

[root@linus ~]# grep -v ^# /etc/ssh/sshd_config | grep -v ^$	#过滤的是ssh的配置文件

搜索任意大写字母开头的行

[root@linus ~]# grep ^[A-Z] /etc/passwd /etc/ssh/sshd_config 

搜索以任意数字结尾的行

[root@linus ~]# grep [0-9]$ /etc/passwd /etc/ssh/sshd_config 

精准匹配字符串,而不是一大串字符串中包含我们需要匹配的字符串

[root@linus ~]# grep "\<root\>" /etc/passwd
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin

使用扩展正则表达式,过滤以#开头的行和空行,与普通的正则表达式相比,省略了|及后续操作

[root@linus ~]# grep -E -v "^#|^$" /etc/ssh/sshd_config 
发布了167 篇原创文章 · 获赞 27 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/qq_42534026/article/details/105273386