小编Moz*_*zzy的帖子

最后一次与sed匹配后追加行

我们假设我有以下输入.

Header
thing0 some info
thing4 some info
thing4 some info
thing4 some info
thing2 some info
thing2 some info
thing3 some info
Run Code Online (Sandbox Code Playgroud)

现在,我希望能够像这样在"thing4"的最后成功匹配上添加"foo".

Header
thing0 some info
thing4 some info
thing4 some info
thing4 some info
foo
thing2 some info
thing2 some info
thing3 some info
Run Code Online (Sandbox Code Playgroud)

订单不一定得到保证,但此示例中的顺序编号只是为了表明在某些文本行之前有一个可搜索的关键字,并且它们通常在输入中组合在一起,但不能保证.

bash sed

10
推荐指数
3
解决办法
5208
查看次数

搜索并用sed替换多行模式

我已经看到了很多有关此问题的示例,但还没有看到适合我使用的示例。尽管我对sed非常熟悉,但我还是很to愧地说我是高级功能的菜鸟。这是眼前的问题。

我有一个多行模式,可以像这样成功地与sed匹配,

sed -e '/Favorite Animals/, /!/p

Favorite Animals
Monkey
Penguin
Cat
!
Favorite Things
Shoe
Dog
Wheel
Moth
!
Run Code Online (Sandbox Code Playgroud)

我个人对此表达的喜好是,我可以将可变数量的行匹配到感叹号。现在假设我想进行搜索并替换相同的模式。基本上,我想用我选择的任何字符串替换以前演示过的多行模式。有任何想法吗?我希望使用与演示的sed命令类似的语法,但是乞g不能成为选择者。

我的想法是,我可以用字符串替换由感叹号分隔的组之一。我称它们为“条目”。我希望能够更新或覆盖这些条目。如果我有喜欢的动物的新更新版本,我希望能够用这样的新条目替换旧条目。

Favorite Animals
Sloth
Platypus  
Badger
Dog
!
Favorite Things
Shoe
Dog
Wheel
Moth
!
Run Code Online (Sandbox Code Playgroud)

如您所见,我现在不再是猴子的粉丝。

bash sed

5
推荐指数
1
解决办法
5146
查看次数

标签 统计

bash ×2

sed ×2