一、简介
grep (global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。
Unix的grep家族包括grep、egrep和fgrep。egrep和fgrep的命令只跟grep有很小不同。egrep是grep的扩展,支持更多的re元字符, fgrep就是fixed grep或fast grep,它们把所有的字母都看作单词,也就是说,正则表达式中的元字符表示其自身的字面意义,不再特殊。linux使用GNU版本的grep。它功能更强,可以通过-G、-E、-F命令行选项来使用egrep和fgrep的功能。
二、grep常用用法
[root@www ~]# grep [-acinv] [--color=auto] ‘搜寻字符串‘ filename
选项与参数:
- -a :将 binary 文件以 text 文件的方式搜寻数据
- -c :计算找到 ‘搜寻字符串‘ 的次数
- -i :忽略大小写的不同,所以大小写视为相同
- -n :顺便输出行号
- -v :反向选择,亦即显示出没有 ‘搜寻字符串‘ 内容的那一行
- --color=auto :可以将找到的关键词部分加上颜色的显示
三、举例说明(需要添加截图)
1.将/etc/passwd ,有出现 root 的行取出来
# grep root /etc/passwd
# cat /etc/passwd | grep root
需要添加截图
2.将/etc/passwd,有出现 root 的行取出来,同时显示这些行在/etc/passwd的行号
# grep -n root /etc/passwd
3.将/etc/passwd,将没有出现 root 的行取出来
# grep -v root /etc/passwd
4.将/etc/passwd,将没有出现 root 和nologin的行取出来
# grep -v root /etc/passwd | grep -v nologin