Linux三剑客之grep

Linux grep命令

1. 用途: linux grep命令是用于查找文件里符合条件的字符串;

2. 语法: grep [选项] ‘搜索的字符串’ [文件]

3. 常见的选项:

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

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

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

  -n :显示行号

  -w :被匹配的文本只能是单词,而不能是单词中的某一部分,如文本中有liker,而我搜寻的只是like,就可以使用-w选项来避免匹配liker

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

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

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

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

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

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

4. 实战:

[root@HJM ~]# grep -Ev "^$|#" /etc/vsftpd/vsftpd.conf 				#查看vsftpd配置文件除了空格行和#开头的行
anonymous_enable=YES
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=NO
listen_ipv6=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
[root@HJM ~]#

[root@HJM ~]# grep -in "ROOT" /etc/passwd 			# "-i"和 “-n” 分别表示忽略大小写和显示行号
1:root:x:0:0:root:/root:/bin/bash
10:operator:x:11:0:operator:/root:/sbin/nologin
[root@HJM ~]# 

[root@HJM ~]# grep -ic "ROOT" /etc/passwd  		#“-c” 表示行号,相当于grep -i "ROOT" /etc/passwd  | wc -l
2

[root@HJM ~]# grep -w 'bin' /etc/passwd			#只能匹配字符串为bin的单词,sbin的不会匹配到
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync

[root@HJM ~]# grep -wA 2  'root' /etc/passwd			#只能匹配到字符串为root的,并且还会显示这个字符串的下面2行
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
--
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
[root@HJM ~]# 

你可能感兴趣的:(Linux)