$cat contents.txt
cat-1.15
cat-1.15
cat-1.15
cat-1.18
Run Code Online (Sandbox Code Playgroud)
上面的输出有空行
$cat contents.txt | grep cat
导致单词 cat 被突出显示,但结果文本也被合并,消除了空行
cat-1.15
cat-1.15
cat-1.15
cat-1.18
Run Code Online (Sandbox Code Playgroud)
如何在不影响文本结构的情况下 grep 突出显示,以便唯一的区别是突出显示的 grep 术语?
使用 GNU grep,这可以通过-z选项来完成。
-z, --null-data
将输入和输出数据视为行序列,每行都以零字节(ASCII NUL 字符)而不是换行符结尾。与 -Z 或 --null 选项一样,此选项可与 sort -z 等命令一起使用以处理任意文件名。
这也是一个UUOC。您可以使用 grep 指定输入文件。
$ grep --color cat contents.txt
cat-1.15
cat-1.15
cat-1.15
cat-1.18
$ grep --color -z cat contents.txt
cat-1.15
cat-1.15
cat-1.15
cat-1.18
Run Code Online (Sandbox Code Playgroud)