unix - 在 unix 中查找匹配的文本并替换下两行
问题描述
我有这样的文件
aaa
bbb
ccc
ddd
eee
我想找到 bbb 并用 zzz 替换接下来的 2 行。最后的结果应该是
aaa
bbb
zzz
zzz
eee
我试过sed,我可以做一条线。不知道如何做 2 行。请帮忙。提前致谢
解决方案
使用 GNU sed:
sed '/bbb/,+2{ /bbb/b; s/.*/zzz/ }' file
使用 awk:
awk '/bbb/{print; getline; print "zzz"; getline; print "zzz"; next}1' file
推荐阅读
- c# - Process.Start 不打开应用程序
- c - 在 IRQ 上的代码中添加或删除数据时崩溃
- elasticsearch - 如何将 fluentd 连接到 opendistro 以进行弹性搜索
- networking - 如何为三种不同的目的创建一个 Gitlab CICD 管道
- javascript - JSX 编译是如何触发的?
- c++ - 在某些行上读取带有前导制表符的制表符分隔的文本文件
- python - 如何设置clock.py文件来安排部署在Heroku上的scrapy蜘蛛爬行
- c# - 在 C# 中使用 itextsharp 设置要生成的标签大小
- sql - 生成随机值,从其他表中获取关系文本
- python - tf.keras.util.array_to_image() 如何处理内存?