Linux命令- grep +正则表达式

  • Post author:
  • Post category:linux



一、简介:

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常规用法

-c:显示匹配行的数量

-i:不区分大小写

-n:在输出符合要求的行的同时显示行号

-v:输出显示不符合要求的行,即反向选择

-r:会把目录下所有的文件全部遍历

–color=auto:把匹配到的关键词加上颜色显示

-A:后跟一个数字n,表示输出显示符合要求的行以及下面n行

-B:后跟一个数字n,表示输出显示符合要求的行以及上面n行

-C:后跟一个数字n,表示打印符合要求的行以及上下各n行


举例说明:

1、将/etc/passwd目录下,出现 root 的行取出来


# grep  root  /etc/passwd


或者  # cat  /etc/passwd | grep  root

2、过滤出带有“root”关键词的行并输出行号


grep -n ‘root’ 1.txt

3、过滤出不带有“root”关键词的行并输出行号


grep -nv ‘root’ 1.txt

4、将/etc/passwd,将没有出现 root 和nologin的行取出来


# grep -v root  /etc/passwd | grep -v nologin

5、用 dmesg 列出核心信息,再以 grep 找出内含 eth 那行,在关键字所在行的前两行与后三行也一起捉出来显示


# dmesg | grep -n -A3 -B2  –color=auto  ‘eth’

另:在关键字的显示方面,grep 可以使用 –color=auto 来将关键字部分使用颜色显示。但是如果每次使用 grep 都得要自行加上 –color=auto 又很麻烦,可以使用 alias来处理。做法:在 ~/.bashrc 内加上这行:


alias  grep=’grep –color=auto’

再以source ~/.bashrc 来立即生效即可~这样每次运行 grep就会自动加上颜色显示。

6、根据文件内容递归查找目录


# grep


‘energywise’ *



版权声明:本文为weixin_43754984原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。