grep简单常用用法

警告
本文最后更新于 2020-05-30 17:09,文中内容可能已过时。

正则表达式

\             转义符,将特殊字符进行转义,忽略其特殊意义 ^            匹配行首,awk中,^则是匹配字符串的开始 $             匹配行尾,awk中,$则是匹配字符串的结尾 ^$           表示空行 .              匹配除换行符\n之外的任意单个字符 [ ]            匹配包含在[字符]之中的任意一个字符 [^ ]          匹配[^字符]之外的任意一个字符 [ - ]          匹配[]中指定范围内的任意一个字符,例:[1-9][a-z] ?              匹配之前的项1次或者0次 +             匹配之前的项1次或者多次 *              匹配之前的项0次或者多次, .* ()             匹配表达式,创建一个用于匹配的子串 { n }         匹配之前的项n次,n是可以为0的正整数 {n,}          之前的项至少需要匹配n次 {n,m}        指定之前的项至少匹配n次,最多匹配m次,n<=m |               或者,|两边的任意一项,ab(c|d)匹配abc或abd

特定字符: [[:space:]]      空格 [[:digit:]]        [0-9] [[:lower:]]       [a-z] [[:upper:]]      [A-Z] [[:alpha:]]       [a-Z]


grep参数说明:

-n:显示行号

-v:取反

-E:使用扩展正则==egrep

-i:忽略大小写

-o:只输出匹配到的内容,匹配行中的其他内容不输出

-w:按照单词过滤

-r:遍历目录查找

-A n:输出匹配内容的后n行(包括匹配行)

-B n:输出匹配内容的前n行(包括匹配行)

-C n:输出匹配内容的前后n行(包括匹配行)

&lt;:词首锚定,同\b

&gt;:词尾锚定,同\b


举例:

#过滤以m开头的行

[root@m01 ~]# grep ‘^m’ passwd mail❌8:12:mail:/var/spool/mail:/sbin/nologin

#过滤以sync结尾的行

[root@m01 ~]# grep ‘sync$’ passwd sync❌5:0:sync:/sbin:/bin/sync

#过滤空行,不显示空行

[root@m01 ~]# grep -v ’^$’ passwd

#显示匹配内容的前2行

[root@m01 ~]# grep -B2 ‘^m’ passwd shutdown❌6:0:shutdown:/sbin:/sbin/shutdown halt❌7:0:halt:/sbin:/sbin/halt mail❌8:12:mail:/var/spool/mail:/sbin/nologin

#显示匹配内容的后2行

[root@m01 ~]# grep -A2 ‘^m’ passwd mail❌8:12:mail:/var/spool/mail:/sbin/nologin operator❌11:0:operator:/root:/sbin/nologin games❌12💯games:/usr/games:/sbin/nologin

#显示匹配内容的前后2行

[root@m01 ~]# grep -C2 ‘^m’ passwd shutdown❌6:0:shutdown:/sbin:/sbin/shutdown halt❌7:0:halt:/sbin:/sbin/halt mail❌8:12:mail:/var/spool/mail:/sbin/nologin operator❌11:0:operator:/root:/sbin/nologin games❌12💯games:/usr/games:/sbin/nologin

#过滤nologin,只显示匹配的内容

[root@m01 ~]# grep -o 'nologin' passwd nologin nologin ...

#过滤出sever的单词

[root@m01 ~]# grep -w ‘server’ /etc/ssh/sshd_config

This is the sshd server system-wide configuration file.  See

Subsystem sftp /usr/libexec/openssh/sftp-server

ForceCommand cvs server

#遍历/root目录中的文件,包含hello的内容

[root@m01 ~]# grep -r 'hello' /root/ /root/.bash_history:cowsay hello
请我喝杯水
SoulChild 微信号 微信号
SoulChild 微信打赏 微信打赏
0%