如何使用grep命令显示匹配和不匹配的命令?匹配的应该是红色的,其他东西应该是正常的颜色。
有没有可用的grep选项?
答案 0 :(得分:1)
您可以通过使用交替模式来实现此目的,其中第二个模式匹配每一行而不突出显示任何内容。
grep --color 'pattern\|^' file
如果您希望整条线变为彩色,而不仅仅是匹配的表达式,只需修改正则表达式以匹配整条线。
grep --color '.*pattern.*\|^' file
您可以使用grep -E
又名egrep
来避免反斜杠。 (我相信也可能有史前grep
实施,根本不支持交替,但是他们也很难获得着色支持。)
答案 1 :(得分:1)
这是awk
cat file
one song
two cars
three houses
awk '/two/ {$0="\033[1;31m"$0"\033[0m"}1' file
one song
two cars
three houses
Whit awk
您可以为不同的发现设置多种颜色。
awk '/two/ {$0="\033[1;31m"$0"\033[0m"} /hous/ {$0="\033[1;36m"$0"\033[0m"}1' file
one song
two cars
three houses
我在日志中使用tail
来查看不同颜色的内容。
要仅为找到的单词着色,请执行以下操作:
awk '{gsub(/two/,"\033[1;31m&\033[0m")}1' file
要了解您可以使用的内容:
awk 'BEGIN {for (a=0;a<=1;a++) for (f=30;f<=37;f++) for (b=40;b<=47;b++) print "\033["a";"f";"b"m"a,f,b"\033[m"}'
甚至有256色版本。