Linux三剑客--grep用法

常用选项

  -E :开启扩展(Extend)的正则表达式。

  -i :忽略大小写(ignore case)。

  -v :反过来(invert),只打印没有匹配的,而匹配的反而不打印。

  -n :显示行号

  -w :被匹配的文本只能是单词,而不能是单词中的某一部分。

  -c :显示总共有多少行被匹配到了,而不是显示被匹配到的内容,注意如果同时使用-cv选项是显示有多少行没有被匹配到。

  -o :只显示被模式匹配到的字符串。

  --color :将匹配到的内容以颜色高亮显示。

  -A  n:显示匹配到的字符串所在的行及其后n行,after

  -B  n:显示匹配到的字符串所在的行及其前n行,before

  -C  n:显示匹配到的字符串所在的行及其前后各n行,context

1、搜索/var/log/secure下,失败的log。

[[email protected] data]# grep -i 'failed' /var/log/secure
Sep 24 13:25:11 localhost login: pam_systemd(login:session): Failed to release session: Interrupted system call
Sep 27 02:58:13 maintain login: FAILED LOGIN 1 FROM tty1 FOR (unknown), User not known to the underlying authentication module
Sep 27 06:45:29 maintain sshd[1115]: pam_systemd(sshd:session): Failed to release session: Interrupted system call
Sep 27 06:45:32 maintain sshd[1093]: pam_systemd(sshd:session): Failed to release session: Interrupted system call
Sep 27 07:03:45 maintain sshd[1138]: pam_systemd(sshd:session): Failed to release session: Interrupted system call
Sep 27 07:40:19 maintain sshd[1188]: pam_systemd(sshd:session): Failed to release session: Interrupted system call

2、在/etc/selinux/config下,忽略#号开头和空白行

[[email protected] data]# egrep -v '^#|^$' /etc/selinux/config 
SELINUX=disabled
SELINUXTYPE=targeted 

3、只匹配Gogo的行 和 只匹配Gogo的单词

[[email protected] data]# cat reg.txt 
Zhang   Dandan    41117397    :250:100:175
Zhang   Xiaoyu    390320151   :155:90:201
Meng    Feixue    80042789    :250:60:50
Wu      waiwai    70271111    :250:80:75
Liu     Bingbing  41117483    :250:100:175 
Wang    Xiaoai    3515064655  :50:95:135
Zi      Gege      1986787350  :250:168:200
Li      Youjiu    918391635   :175:75:300
Lao     Nanhai    918691635   :250:100:175  
[[email protected] data]# grep -w 'Gege' reg.txt 
Zi      Gege      1986787350  :250:168:200
[[email protected] data]# grep -o 'Gege' reg.txt 
Gege

 4、过滤出来的内容,并显示行号

[[email protected] data]# grep -n 'maintain' hosts 
3:192.168.100.101 maintain