首先,我们来了解grep命令,grep (global search regular expression and printing),全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。Linux中的grep命令包括、grep,egrep和fgrep 。egrep是grep的扩展,支持更多的re元字符,fgrep就是fast grep,搜索字符比较快,但不支持正则表达式。
然后,我们再来熟悉一下grep命令,其命令格式为:grep [options] ‘pattern’ FILE 。其中grep的常见选项:
-v:反向选取,只显示不符合模式的行;
-o:只显示被模式匹配的字串,而不是整个行;
-i:不区分字符的大小写;
-r:递归搜索;
-A #:显示匹配到行时,顺带显示其后面的#个行;
-B #:显示匹配到行时,顺带显示其前面的#个行;
-C #:显示匹配到行时,顺带显示其前后的#个行;
另外 ,为了用户查看显示匹配的结果,可以在grep命令之后输入“--color=auto”,使结果呈现颜色。
[root@gz1~]#grep--color'root'/etc/passwd root:x:0:0:root:/root:/bin/bash operator:x:11:0:operator:/root:/sbin/nologin
显示出在哪一行 -n
[root@gz1~]#grep--color-n'root'/etc/passwd 1:root:x:0:0:root:/root:/bin/bash 11:operator:x:11:0:operator:/root:/sbin/nologin
为了方便我们做个别名
[root@gz1~]#aliascg='grep--color' [root@gz1~]#vim.bashrc #.bashrc #Userspecificaliasesandfunctions aliasrm='rm-i' aliascp='cp-i' aliasmv='mv-i' aliascg='grep--color' #Sourceglobaldefinitions if[-f/etc/bashrc];then ./etc/bashrc fi
测试一下
[root@gz1~]#cg-n'root'1.txt 1:root:x:0:0:root:/root:/bin/bash 11:operator:x:11:0:operator:/root:/sbin/nologin
只想要显示行数
[root@gz1~]#cg-c'root'1.txt 2
取反不包含root
[root@gz1~]#cg-v'root'1.txt bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin adm:x:3:4:adm:/var/adm:/sbin/nologin lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin sync:x:5:0:sync:/sbin:/bin/sync shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown halt:x:7:0:halt:/sbin:/sbin/halt mail:x:8:12:mail:/var/spool/mail:/sbin/nologin uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin games:x:12:100:games:/usr/games:/sbin/nologin gopher:x:13:30:gopher:/var/gopher:/sbin/nologin ftp:x:14:50:FTPUser:/var/ftp:/sbin/nologin nobody:x:99:99:Nobody:/:/sbin/nologin dbus:x:81:81:Systemmessagebus:/:/sbin/nologin vcsa:x:69:69:virtualconsolememoryowner:/dev:/sbin/nologin rpc:x:32:32:RpcbindDaemon:/var/cache/rpcbind:/sbin/nologin saslauth:x:499:76:Saslauthduser:/var/empty/saslauth:/sbin/nologin postfix:x:89:89::/var/spool/postfix:/sbin/nologin haldaemon:x:68:68:HALdaemon:/:/sbin/nologin rpcuser:x:29:29:RPCServiceUser:/var/lib/nfs:/sbin/nologin nfsnobody:x:65534:65534:AnonymousNFSUser:/var/lib/nfs:/sbin/nologin sshd:x:74:74:Privilege-separatedSSH:/var/empty/sshd:/sbin/nologin MysqL:x:500:500::/home/MysqL:/sbin/nologin
[root@gz1~]#cg-n-A2'root'1.txt显示匹配到行时,顺带显示其后面的#个行; 1:root:x:0:0:root:/root:/bin/bash 2-bin:x:1:1:bin:/bin:/sbin/nologin 3-daemon:x:2:2:daemon:/sbin:/sbin/nologin -- 11:operator:x:11:0:operator:/root:/sbin/nologin 12-games:x:12:100:games:/usr/games:/sbin/nologin 13-gopher:x:13:30:gopher:/var/gopher:/sbin/nologin [root@gz1~]#cg-n-B2'games'1.txt显示匹配到行时,顺带显示其前面的#个行; 10-uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin 11-operator:x:11:0:operator:/root:/sbin/nologin 12:games:x:12:100:games:/usr/games:/sbin/nologin [root@gz1~]#cg-n-C2'games'1.txt显示匹配到行时,顺带显示其前后的#个行; 10-uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin 11-operator:x:11:0:operator:/root:/sbin/nologin 12:games:x:12:100:games:/usr/games:/sbin/nologin 13-gopher:x:13:30:gopher:/var/gopher:/sbin/nologin 14-ftp:x:14:50:FTPUser:/var/ftp:/sbin/nologin