Shell实现以下功能: 通过关键词匹配到文件某一行,并在这一行末尾追加内容。

Shell实现以下功能: 通过关键词匹配到文件某一行,并在这一行末尾追加内容。,第1张

假设文件名是1.txt

cat 1.txt | grep bbbb | head -1 | awk 'print $1,$2,dddd'

sorry看错了你的需求,上面的只是把你需要的那一行打印出来了,应该用sed来插入,也很简单

sed -i 's/bbbb 1234/bbbb 1234 dddd/' 1.txt

抛砖引玉

预览

sed -n -e '/aaa/{nnns|$|\n新添加的行|p}'  3hang_addline.txt

应用:

sed -i -e '/aaa/{nnns|$|\n新添加的行|}'  3hang_addline.txt

解释:

nnn就是从匹配的aaa往下走三行,到位后,将行尾添加换行符——新增一行,\n后面就是新行的内容。

你的提问只需要两个n,即往下走两行,再添加新行,就行了。我审题不严。

可能你要问,如果我要在匹配到aaa后的1000行添加新行,难道要打1000次“n”吗?

我的回答是,如果数字很大,我到宁愿用你提问中不想用的那个方法。

预览:

num=`sed -n  -e '/aaa/='  3hang_addline.txt`sed -n $((num+3))'s|$|\n你要添加的行|p' 3hang_addline.txt

应用:

num=`sed -n  -e '/aaa/='  3hang_addline.txt`sed -i $((num+3))'s|$|\n你要添加的行|' 3hang_addline.txt


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/bake/11880402.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-19
下一篇 2023-05-19

发表评论

登录后才能评论

评论列表(0条)

保存