egrep
和 grep
的作用都是在文件中搜索匹配指定模式的文本,并将匹配的行输出到标准输出。它们的区别在于所支持的正则表达式语法不同。
grep
支持基本的正则表达式语法,包括:
.
:匹配任意一个字符;*
:匹配前面的元素零次或多次;^
:匹配行首;$
:匹配行尾;[]
:匹配方括号中的任意一个字符;[^]
:匹配不在方括号中的任意一个字符;\
:转义字符。
例如,下面的命令将在文件 example.txt
中搜索包含单词 “hello” 的行,并将它们输出到标准输出:
grep 'hello' example.txt
egrep
支持基本正则表达式的所有语法,并扩展了一些语法,如:
|
:匹配两个或多个模式中的任意一个;()
:将模式组合成一个子表达式;+
:匹配前面的元素至少一次;?
:匹配前面的元素零次或一次;{n}
:匹配前面的元素恰好 n 次;{n,}
:匹配前面的元素至少 n 次;{n,m}
:匹配前面的元素至少 n 次,但不超过 m 次。
例如,下面的命令将在文件 example.txt
中搜索包含单词 “hello” 或 “world” 的行,并将它们输出到标准输出:
egrep 'hello|world' example.txt
egrep
还支持 -i
、-w
、-v
和 -n
等与 grep
相同的选项。
因此,如果需要使用更多的正则表达式语法来进行文本匹配,可以使用 egrep
命令;如果只需要基本的语法就可以完成匹配任务,可以使用 grep
命令。