使用sed查找并替换模式的所有实例

时间:2016-01-24 01:59:22

标签: regex bash sed

我对sed不太好。它看起来很复杂。但是,我已经学会了如何用另一个字符串替换字符串的所有实例

sed 's/replace-this/with-this/FLAG'

但是,如果我想说替换所有以" a"开头的单词。并且有第三个字母" p",有水果,我该怎么做?

2 个答案:

答案 0 :(得分:1)

这可能适合你(GNU sed):

jdk

这会使用sed 's/\<a\wp\w*\>/fruit/g' file 开头字边界作为标记,用于以字符\<开头的单词的开头,后跟另一个单词字符,后跟a,由零个或多个单词字符组成,后跟一个p结束字边界,全局替换为单词\>

答案 1 :(得分:0)

假设:

$ echo "$tgt"
app
apple
applesauce
grape
gum
apple is a fruit
text apple and pears

你可以这样做:

$ echo "$tgt" | sed 's/a.p.*/fruit/'
fruit
fruit
fruit
grape
gum
fruit
text fruit

如果您只想要单词(不是该行的其余部分),您可以这样做:

$ echo "$tgt" | sed -E 's/a.p[a-zA-Z]*/fruit/'
fruit
fruit
fruit
grape
gum
fruit is a fruit
text fruit and pears