使用sed在模式后的第n行中插入文件中的字符串

时间:2015-06-17 14:58:49

标签: linux sed insert match line

我想使用sed在模式之后的第n行之后插入单词。 我绑定修改此命令,但它只在模式后的第一行插入。

ul > ul

我应该使用什么命令插入格式后的第三行?

3 个答案:

答案 0 :(得分:1)

使用GNU sed最简单的方法是...(也许存在一些直接的解决方案!?)

sed -n '/pattern/=' file  

查看模式所在的行(grep也可以在这里使用-n)

然后如果linenumber + numoflines是例如123

sed '123aSOME INSERTED TEXT AFTER THAT LINE' file  

其中很少是附加命令(在该行之后,如果使用i将是预先模式行)

PS。我很想知道@neronlevelu(或其他sed Lover)是否能找到更好的sed解决方案。

编辑:我发现它,它似乎是追加或我必须插入吗?使用{with;时在第一个位置上线里面}喜欢

sed '/pattern/{N;N;N;
a  SOME TEXT FOR INSERTING
}' file

答案 1 :(得分:0)

sed '/pattern/{N;N;N;i \
Line to add after 3 lines with patterne as starting counter
' YourFile
  • 在模式和插入行之间添加行的N个数。
  • 没有检查3行中文件或模式的结尾。 (未在PO中指定)

答案 2 :(得分:0)

包含bashed

的版本
ed -s myFile <<<$'/myPattern/+3a\n LineIWantToinser \n.\nwq'

ed使我们能够使用代码行/myPattern/+3