用sed中的单词替换可能的短语?

时间:2020-01-30 18:41:13

标签: linux bash sed

我希望能够替换整个短语,例如:

white_phone
white; phone
white.phone
phone;white

根据词组中是否包含单词“ white”,使用单个词组“ REJECT”。我尝试使用:

sed -e 's/*white*/REJECT/g' -e 's/*white/REJECT/g' -e 's/white*/REJECT/g' file

但这只会替换单词“ white”,而剩下的短语则是我不想要的。

短语也可以用制表符分隔,如果有帮助的话。

3 个答案:

答案 0 :(得分:2)

据我所知,这将为您提供所需的输出。如果不是这种情况,请显示所需输出的示例。

sed -i 's/.*white.*/REJECT/' file

答案 1 :(得分:0)

您需要为此使用sed后向引用:

sed -e 's/\(^.*\)white.*phone\(.*$\)/\1REJECT\2/g' -e 's/\(^.*\)phone.*white\(.*$\)/\1REJECT\2/g' < file 

该命令适用于您提供的输入。

答案 2 :(得分:0)

这可能对您有用(GNU sed):

sed '/white/cREJECT' file
相关问题