使用 sed,我想在第 n 次出现后添加检查
输入:
DCR
DCR
DCR
Run Code Online (Sandbox Code Playgroud)
输出:
DCR
DCR
check
DCR
Run Code Online (Sandbox Code Playgroud)
可以使用sed吗?
使用 GNU sed,您可以替换一行中的第n个模式
$ echo "foofoofoofoo" | sed 's/foo/&\nbar/2'
foofoo
barfoofoo
Run Code Online (Sandbox Code Playgroud)
但是对于包含模式的第n行,awk 更容易:
awk -v n=2 -v patt=foo '{print} $0 ~ patt && ++count == n {print "bar"}' <<END
foo1
foo2
foo3
foo4
END
Run Code Online (Sandbox Code Playgroud)
foo1
foo2
bar
foo3
foo4
Run Code Online (Sandbox Code Playgroud)