首页 > 解决方案 > 在 unix 中查找匹配的文本并替换下两行

问题描述

我有这样的文件

aaa
bbb
ccc
ddd
eee

我想找到 bbb 并用 zzz 替换接下来的 2 行。最后的结果应该是

aaa
bbb
zzz
zzz
eee

我试过sed,我可以做一条线。不知道如何做 2 行。请帮忙。提前致谢

标签: unixsedfind

解决方案


使用 GNU sed:

sed '/bbb/,+2{ /bbb/b; s/.*/zzz/ }' file

使用 awk:

awk '/bbb/{print; getline; print "zzz"; getline; print "zzz"; next}1' file

推荐阅读