shell 如何用sed同时替换两个对象?

aoyhnmkz  于 2022-12-13  发布在  Shell
关注(0)|答案(3)|浏览(217)

给定的是字符串:dog apple orange banana
我需要让它:monkey apple cow banana
这是没有调用sed两次。

5q4ezhmt

5q4ezhmt1#

下面的sed示例应该可以解决您的问题。sed允许使用多个-e开关,这允许您一次替换多个内容。

sed -e 's/dog/monkey/g' -e 's/orange/cow/g'
ma8fv8wu

ma8fv8wu2#

使用;对命令进行排队:

sed -e 's/dog/monkey/g;s/orange/cow/g'
u4dcyp6a

u4dcyp6a3#

这也可以通过使用捕获组(如\(.*\),用括号表示)和引用每个捕获组的反向引用(如\1\2等)来完成。

sed 's|dog\(.*\)orange\(.*\)|monkey\1cow\2|'

相关问题