我有一个字符串处理要求,我想从行号n取一行并编辑它(将@ 2替换为@ 3)然后将新编辑的字符串插入行号n + 1
这是我的输入文件的样子
输入文件: -
x/a y/a z/a x/a@2 y/a@2 z/a@2 x/b y/b z/b x/b@2 y/b@2 z/b@2
预期产量如下。注意第三行@ 3。这就是我所期待的。
x/a y/a z/a x/a@2 y/a@2 z/a@2 x/a@3 y/a@3 z/a@3 x/b y/b z/b x/b@2 y/b@2 z/b@2
我尝试过: - 我对sed有基本的了解。所以我能够使用以下方法搜索和替换字符串:
sed '/a@2/ s/a@2/a@3/' -i $file
但是我无法找到一种方法将它插入拾取它的下一行。
任何帮助将不胜感激。 TIA
答案 0 :(得分:1)
在编辑之前,您只需打印要编辑的行:
sed '/a@2/{ p; s/a@2/a@3/g; }'