在Linux中grep,egrep和fgrep之间的区别
一些特殊的元字符grep
+
-相当于前一个字符的一次或多次出现。?
-这是指近1重复前一个字符。 这样的:a?
将匹配'a'或'AA'。(
-交替表现的开始。)
-交替表达的结束。|
-匹配或者通过分离式的'|'
像:“(a|b)cde”
将匹配要么“ABCDE”或“bbcde”。{
-这个元字符表示的范围说明符的开始。 这样的:“a{2}”
中的文件匹配“AA”即2倍。}
-这个元字符表示范围说明结束。
grep,egrep和fgrep之间的区别
的grep,egrep 的和 比fgrep之间的一些主要差异可以如下突出显示。对于这组示例,我们假设正在执行操作的文件是:Linux grep命令
Grep命令
grep或者 全局正则表达式打印是类Unix系统主要的搜索程序,它可以搜索文件的任何文件或文件列表,甚至任何命令的输出的任何类型的字符串。建议阅读: Linux的grep命令的12实际的例子
它采用 的基本的正则表达式除了正常的字符串作为搜索模式。 在基本正则表达式(BRE),元字符,如:'{','}'
'(',')'
,
'|'
'+'
'?'
失去其意义,被视为普通字符字符串,如果它们被视为特殊字符,则需要进行转义。
推荐阅读: 11提前'grep'可以在字符类和括号表达式命令
此外,grep使用Boyer-Moore算法快速搜索任何字符串或正则表达式。$ grep -C 0 '(f|g)ile' check_file $ grep -C 0 '\(f\|g\)ile' check_file
Linux grep命令示例
'(' ')'
和
'|'
然后搜索整个字符串即
“(f|g)ile”
的文件中。 但是,当特殊字符了逃脱,然后,而不是把它们当作字符串的一部分,grep的对待他们的元字符和搜索词
“file”
或
“gile”
的文件中。
Egrep命令
EGREP或者 grep的 -E是grep或者扩展的grep的另一个版本。这个版本的grep是高效和快速的,当它涉及到搜索正则表达式模式,因为它对待元字符,因为不替换为字符串,如grep,因此你摆脱它们的负担逃避他们在grep。它使用ERE或扩展正则表达式集。 在egrep的情况下,即使你不转义元字符,它会将它们视为特殊字符,并替换它们的特殊意义,而不是将它们视为字符串的一部分。$ egrep -C 0 '(f|g)ile' check_file $ egrep -C 0 '\(f\|g\)ile' check_file
Linux egrep命令示例
“file”
字符串时的元字符都没有逃脱,因为它会通过这些字符的意思意思。 但是,当这些字符了逃脱,然后egrep的对待他们作为字符串的一部分,并寻找完整的字符串
“(f|g)ile”
的文件中。
fgrep命令
fgrep一样或 固定grep或者 grep的-F是grep的是在快速搜索时涉及到搜索整个字符串,而不是正则表达式,因为它不承认正则表达式,无论任何元字符的另一个版本。对于搜索任何直接字符串,这是应该选择的grep的版本。 Fgrep搜索完整的字符串,甚至不识别特殊字符作为正则表达式的一部分,即使转义或未转义。$ fgrep -C 0 '(f|g)ile' check_file $ fgrep -C 0 '\(f\|g\)ile' check_file
Linux fgrep命令示例
“(f|g)ile”
的文件中,当元字符进行转义,则比fgrep命令搜索
“\(f\|g\)ile”
的所有字符是在文件中。 我们已经介绍了一些grep命令的实际例子,你可以在这里阅读它们,如果你想在Linux中获得更多的grep命令。