grep | egrep

——是一种强大的文本搜索工具,它能使用正则表达式搜索文本

1、处理顺序

以行为单位,逐行处理;

默认只输出与表达式相匹配的行;

处理完当前行后,自动处理下一行,直到末行

egrep等同于 grep –E,表示允许使用拓展的正则表达式


2、格式

格式1

#egrep [选项]  ‘正则表达式’   文件列表

格式2

#前置命令   |  egrep  [选项]  ‘正则表达式’   文件列表


3、选项:

      --color   用颜色显示出来

      -v        条件取反

      -i        忽略大小写

      -c        统计匹配的行数

      -q        静默,无任何输出,一般用于检测。如果$?0说明有匹配,否则没有

      -n        显示出匹配结果所在的行号



4、应用:


1 显示文件中有字母或数字的行

# grep -n '[a-Z0-9]' /etc/passwd

wKiom1MTFijjEXPYAAMgsanM9ks579.jpg


2 显示文件里以一个空格开头的行

# egrep -n ^'  {1}' /tmp/passwd

wKiom1MTFmah7_JhAAFecEC6X1U085.jpg


3 显示文件里以空格开头的行

# egrep -n ^'  ' /tmp/passwd



wKiom1MTFqKAEvo3AAFQANSrIeo123.jpg

4 去掉文件中的空行显示文件内容

# egrep -v ^' ' /tmp/passwd

正则表达式匹配空行,再取反

wKiom1MTFs-TGwy7AAN-S0pSbi4713.jpg



5显示文件中有tarena字样的行(不区分字母大写

# egrep -i tarena /tmp/passwd

wKioL1MTFu_jGppSAAE-RUm_vKM826.jpg


6 显示文件中一任意符号开头的行

# egrep -n ^. /tmp/passwd

wKioL1MTF3TxH-9nAATofgXyJEo711.jpg


7 显示httpd.conf文件里的有效行(没有注释符号,不是空行的的行)

# egrep -v "^$|^#"/etc/httpd/conf/httpd.conf

^$ :是空行的意思

^# :以#开头

-v 取反

wKioL1MTF6iAIdSkAAFpjZ0u8mE124.jpg


8 统计/etc目录下有多少链接文件

# ll /etc/ | egrep -c '>'


wKioL1MTGAGSc1a0AAC2glavkD8823.jpg

9 显示文件中由任意3个字符组成的行(一行三个字符)

# egrep -n ^...$  test.txt


wKioL1MTGEXCzR9rAACjskWOQ8M453.jpg