awk/sed:将匹配字符串的出现次数添加到文件中

Jon*_*lie 2 bash awk sed

所以我有一个文件,并且有一个字符串,我想通过在其上方放置标记线来突出显示该字符串。我可以使用 sed 轻松完成此操作:

cat flog.txt |sed '/foo/ i===========B' >t.lis
Run Code Online (Sandbox Code Playgroud)

这工作正常,因为我现在有一个看起来像这样的文件

===========B
布拉布拉布拉福布拉布拉布拉
布拉布拉布拉
===========B
布拉布拉布拉福布拉布拉布拉
布拉布拉布拉
布拉布拉布拉
===========B
布拉布拉布拉福布拉布拉布拉
布拉布拉布拉
===========B
布拉布拉布拉福布拉布拉布拉
布拉布拉布拉

但是我希望“==========B”行的计数为 1、2、3 等,因此文件看起来像这样:

===========B 1
布拉布拉布拉福布拉布拉布拉
布拉布拉布拉
===========B 2
布拉布拉布拉福布拉布拉布拉
布拉布拉布拉
布拉布拉布拉
===========B 3
布拉布拉布拉福布拉布拉布拉
布拉布拉布拉
===========B 4
布拉布拉布拉福布拉布拉布拉
布拉布拉布拉

等等,有人可以帮忙吗?

谢谢,

anu*_*ava 5

awk应该可以完成这项工作:

awk '/foo/{ print "===========B " ++i } 1' file
Run Code Online (Sandbox Code Playgroud)