在模式搜索的同一行插入带有sed的文本

时间:2016-02-07 10:26:29

标签: sed

例如,如果我有这个文件:

The green horse is blue localhost
my pants is dirty localhost
your eyes is so beautiful localhost
The best area is localhost

我希望在每次'localhost'模式搜索后在此文件中添加文本(192.168.25.50)。

  • 我不想创建新行
  • 我不想在每一行插入但只是在一个模式之后插入
  • 我不想使用awk,我需要知道sed命令是否可以执行此操作

的确,我的结果必须如此:

The green horse is blue localhost 192.168.25.50
my pants is dirty localhost 192.168.25.50
your eyes is so beautiful localhost 192.168.25.50
The best area is localhost 192.168.25.50

存在很多sed问题,但都有一个特定的上下文,无法解决我的简单和基础问题。我已经可以在同一个文件中的模式之后插入文本但从不在同一行中。

你能解释一下如何在sed命令本身使用的模式的同一行插入sed命令吗?

1 个答案:

答案 0 :(得分:16)

使用GNU sed:

N::foo()
  

sed 's/\blocalhost\b/& 192.168.25.50/' file :零宽度字边界

     

\b:引用与

匹配的模式空间部分

如果你想编辑你的文件"就地"使用sed的选项&