1

我确定这已经写在之前的某个地方......我正在尝试使用 sed 来替换具有以下格式的字符串,该格式位于较大的字符串中:

EFF=<some text>;

字符串始终以 'EFF=' 开头并以 ';' 结尾

我尝试了以下方法,但不知何故,它删除的内容远远超出了预期(而不是仅仅删除这个特定的部分,它会删除直到最后一个 ';' 在较大的字符串中),所以我不确定我是否可以在我的命令中更具体:

sed -i 's/EFF=.*;//g'

例如较大的字符串:

<some text>;EFF=<some text>;<some text>;<some text>; 

“某些文本”并不相同

4

1 回答 1

4

*是贪心的,它匹配最长的可能字符串。您需要;从匹配中排除。

sed -i 's/EFF=[^;]*;//g' filename
于 2013-10-15T19:58:50.403 回答