linux命令之grep (3)

假设我们要找出 g 后面接 2 到 5 个 o ,然后再接一个 g 的字串,他会是这样:

[root@onajax.com ~]# grep -n 'go\{2,5\}g' onajax.com.txt 18:google is the best tools for search keyword.

如果我想要的是 2 个 o 以上的 goooo....g 呢?除了可以是 gooo*g ,也可以是:

[root@onajax.com ~]# grep -n 'go\{2,\}g' onajax.com.txt 18:google is the best tools for search keyword. 19:goooooogle yes! 扩展 grep(grep -E 或者 egrep):

使用扩展 grep 的主要好处是增加了额外的正则表达式元字符集。打印所有包含 NW 或 EA 的行。如果不是使用 egrep,而是 grep,将不会有结果查出。

# egrep 'NW|EA' testfile northwest NW Charles Main 3.0 .98 3 34 eastern EA TB Savage 4.4 .84 5 20 对于标准 grep,如果在扩展元字符前面加,grep 会自动启用扩展选项-E。 #grep 'NW\|EA' testfile northwest NW Charles Main 3.0 .98 3 34 eastern EA TB Savage 4.4 .84 5 20 搜索所有包含一个或多个 3 的行。 # egrep '3+' testfile # grep -E '3+' testfile # grep '3\+' testfile #这 3 条命令将会 northwest NW Charles Main 3.0 .98 3 34 western WE Sharon Gray 5.3 .97 5 23 northeast NE AM Main Jr. 5.1 .94 3 13 central CT Ann Stephens 5.7 .94 5 13 搜索一个或者多个连续的 no 的行。 # egrep '(no)+' testfile # grep -E '(no)+' testfile # grep '\(no\)\+' testfile #3 个命令返回相同结果, northwest NW Charles Main 3.0 .98 3 34 northeast NE AM Main Jr. 5.1 .94 3 13 north NO Margot Weber 4.5 .89 5 9 不使用正则表达式

fgrep 查询速度比 grep 命令快,但是不够灵活:它只能找固定的文本,而不是规则表达式。如果你想在一个文件或者输出中找到包含星号字符的行

fgrep '*' /etc/profile for i in /etc/profile.d/*.sh ; do 或 grep -F '*' /etc/profile for i in /etc/profile.d/*.sh ; do

[参考1] ()
[参考2] ()

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpjyjp.html