如何使用终端仅为文本中的一种字符着色?

Jen*_*ssa -1 command-line

我只想为名为 test.txt 的文本文件中的符号 & 着色

Byt*_*der 5

我猜您想在终端中显示文本文件的内容并突出显示&该输出中的所有字符。

该文件test.txt可能如下所示:

Apples & Bananas
Strawberries & Raspberries
Cookies & Chocolate & Ice Cream
Pizza

Pineapples
Run Code Online (Sandbox Code Playgroud)

然后,您可以使用grep颜色匹配给定模式的文件的所有部分:

grep -E '^|&' test.txt
Run Code Online (Sandbox Code Playgroud)

彩色输出

此命令的作用是将扩展的(-E启用,允许我们|在模式中使用)正则表达式^|&与输入文件的test.txt每一行进行匹配,打印包含匹配项的每一行,实际匹配的部分以红色突出显示。

我们使用模式^|&来匹配行的开头 ( ^) 或文字与号字符 ( &)。第一部分需要包括输出中的所有行,而不仅仅是那些包含与号的行。

注意:颜色是隐式启用的,因为默认情况下在 Ubuntu 上,grep别名为grep --color=auto,如果输出到终端(而不是例如管道或文件),它会打开彩色突出显示。如果您没有此别名,则必须为自己添加--color=autoor--color=always参数grep