egrep 命令用于在文件内查找指定的字符串。
egrep 执行效果与"grep-E"相似,使用的语法及参数可参照grep指令,与grep的不同点在于解读字符串的方法。
egrep 是用 extended regular expression 语法来解读的,而 grep 则用 basic regular expression 语法解读,extended regular expression 比 basic regular expression 的表达更规范。
egrep [OPTION]... PATTERNS [FILE]...
OPTION 选项
PATTERNS 查找字符串模式,注意,可以包含多个用换行符分隔的模式
FILE 文件或目录
模式选择和解释:
-E, --extended-regexp PATTERNS是扩展的正则表达式
-F, --fixed-strings PATTERNS是字符串
-G, --basic-regexp PATTERNS是基本的正则表达式
-P, --perl-regexp PATTERNS是Perl正则表达式
-e, --regexp=PATTERNS 使用PATTERNS进行匹配
-f, --file=FILE 从FILE中提取PATTERNS
-i, --ignore-case 忽略了模式和数据中的大小写区别
--no-ignore-case 不忽略大小写的区别(缺省)。
-w, --word-regexp 只匹配整个单词
-x, --line-regexp 只匹配整行
-z, --null-data 数据行以0字节结束,而不是换行
其他选项:
-s, --no-messages 抑制错误信息
-v, --invert-match 选择非匹配的行
-V, --version 显示版本信息且退出
--help 显示帮助信息且退出
输出控制:
-m, --max-count=NUM 在选定的NUM行后停止
-b, --byte-offset 打印带有输出行的字节偏移量
-n, --line-number 打印带有输出行的行号
--line-buffered 刷新每一行的输出
-H, --with-filename 打印带有输出行的文件名
-h, --no-filename 抑制输出中的文件名前缀
--label=LABEL 使用LABEL作为标准输入文件名的前缀
-o, --only-matching 只显示匹配的行的非空部分
-q, --quiet, --silent 抑制所有正常输出
--binary-files=TYPE 假设二进制文件是 TYPE;TYPE是 "binary"、"text" 或 "without-match"
-a, --text 等价 --binary-files=text
-I 等价 --binary-files=without-match
-d, --directories=ACTION 如何处理目录,ACTION 取值 "read"、"recurse" 或 "skip"
-D, --devices=ACTION 如何处理设备、FIFO 和 sockets,ACTION 取值 "read" 或 "skip"
-r, --recursive 类似 --directories=recurse
-R, --dereference-recursive 同样地,但要遵循所有的符号链接
--include=GLOB 只搜索符合GLOB(一种文件模式)的文件
--exclude=GLOB 跳过符合GLOB的文件
--exclude-from=FILE 跳过符合FILE中任何文件模式的文件
--exclude-dir=GLOB 跳过与GLOB匹配的目录
-L, --files-without-match 只打印没有选定行的FILE的名称
-l, --files-with-matches 只打印有选定行的FILE的名称
-c, --count 只打印每个FILE中选定的行数
-T, --initial-tab 使标签排成一行(如果需要)
-Z, --null 在FILE名称后打印0字节
上下文控制:
-B, --before-context=NUM 打印NUM行的前导语
-A, --after-context=NUM 打印NUM行的尾部上下文
-C, --context=NUM 打印NUM行的输出环境
-NUM 与 --context=NUM 相同
--group-separator=SEP 打印SEP在与上下文匹配的行中的位置
--no-group-separator 不打印与上下文匹配的分隔符
--color[=WHEN],
--colour[=WHEN] 使用标记来突出显示匹配的字符串;WHEN 取值 "always"、"never " 或 "auto"
-U, --binary 在EOL时不剥离CR字符(MSDOS/Windows)。
当 FILE 为 '-' 时,从标准输入读取数据。如果没有 FILE,如果是递归,则读取 '.',否则读取 '-'。如果少于两个 FILE,则假定为 -h。
如果有任何一行被选中,退出状态为 0,否则为 1;如果发生任何错误并且没有给出 -q,退出状态为 2。
准备两个文件 demo1 和 demo2,内容如下:
hxstrive@localhost:~$ cat demo1 Hello world! hxstrive@localhost:~$ cat demo2 Hello Linux!
(1)搜索当前目录下面所有文件,列出包含 “Hello” 字符串的文件,如下:
hxstrive@localhost:~$ egrep Hello * demo1:Hello world! demo2:Hello Linux!
(2)搜索 demo1 文件中是否包含 “Hello” 字符串,如下:
hxstrive@localhost:~$ egrep Hello demo1 Hello world!
(3)搜索 demo1 文件中是否包含 “Hello” 字符串,并且使用 -n 搜索结果显示行号,如下:
hxstrive@localhost:~$ egrep -n Hello demo1 1:Hello world!
更多关于命令详细参考手册,请使用 man 命令或者 --help 参数获取帮助信息