cat文件到终端并为特定单词着色

cat file to terminal and color a specific word

本问题已经有最佳答案,请猛点这里访问。

我读过几篇关于语法突出显示的文章,比如catgrep(这篇和这篇也一样),但还没有找到我要找的东西。我要将整个文本文件打印到终端,并将特定(重复)单词用红色表示。没有这个词的行也应该打印出来。这有点接近,但只有打印包含特定单词的行。这篇文章没有显示它,但是加载词的颜色应该是红色的。

1
2
3
4
5
$ cat input.ll | grep"load"
  %tmp = load %class.A*, %class.A** %p, align 8
  %vtable = load i32 (%class.A*, i32, i32, i32)**, i32 (%class.A*, i32, i32, i32)*** %tmp1, align 8
  %tmp2 = load i32 (%class.A*, i32, i32, i32)*, i32 (%class.A*, i32, i32, i32)** %vfn, align 8
  %tmp3 = load i32, i32* @x, align 4

这是原始文件:

1
2
3
4
5
6
7
8
$ cat input.ll
  %tmp = load %class.A*, %class.A** %p, align 8
  %tmp1 = bitcast %class.A* %tmp to i32 (%class.A*, i32, i32, i32)***
  %vtable = load i32 (%class.A*, i32, i32, i32)**, i32 (%class.A*, i32, i32, i32)*** %tmp1, align 8
  %vfn = getelementptr inbounds i32 (%class.A*, i32, i32, i32)*, i32 (%class.A*, i32, i32, i32)** %vtable, i64 2
  %tmp2 = load i32 (%class.A*, i32, i32, i32)*, i32 (%class.A*, i32, i32, i32)** %vfn, align 8
  %tmp3 = load i32, i32* @x, align 4
  %call = call i32 %tmp2(%class.A* %tmp, i32 3, i32 %tmp3, i32 7)


我建议GNU GREP:

1
grep --color -E 'load|$' file