当我运行这些命令时,我得到如下输出:
这是命令和输出,以文本形式:
$ cat exte
i
ii
iii
iiii
iiiii
iiiiii
这很好用:
$ egrep --color i\{4,5\} exte
iiii
iiiii
iiiiii
我想它应该只显示一两个颜色" i"一行,但输出颜色一切:
$ egrep --color i\{1,2\} exte
i
ii
iii
iiii
iiiii
iiiiii
同样,我无法在此处看到扩展的正则表达式:
$ egrep --color i? exte
i
ii
iii
iiii
iiiii
iiiiii
$ egrep --color i+ exte
i
ii
iii
iiii
iiiii
iiiiii
答案 0 :(得分:1)
此命令为所有颜色着色,因为在您的文件中有那么多我的。
$ egrep --color i\{1,2\} exte
i
ii
iii
iiii
iiiii
iiiiii
以输出中的第三行为例。您没有为行匹配行或行结束的行指定任何约束。所以,它逐一匹配。所以,第二个第三行中的前两个是匹配的。对于第三个i,它检查条件,该时间也是条件为真。所以,它匹配所有。
如果您想要更清晰的输出,可以使用-o选项来匹配所有内容。
-o: -
仅打印匹配行的匹配(非空)部分,每个此类部分位于单独的输出行上。
$ egrep --color i? exte
?在grep正则表达式中标记,它匹配前一个字符的零次或一次出现。所以,它也像上面的命令一样工作。所有的i都是一个一个匹配的正则表达式。
$ egrep --color i+ exte
+表示匹配前一个字符的一个或多个匹配项。 因此,它会在一次出现时逐行匹配所有i。
如果要将输出视为清除格式,则必须使用-o选项。