假设我们要找出 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] ()