如何用sed删除两个符号之间出现的所有文本?

时间:2012-10-03 07:23:26

标签: sed

我有一个包含这样的行的文件:

bear/forest/\AAA mountains/fish/
fish/\AAA stream/river/\AAA shrimp/
llama/mountains/

我想删除2 /之间出现的任何文字,其中\AAA出现,例如,以上内容将成为:

bear/forest/fish/
fish/river/
llama/mountains/

AAA始终显示在第一个/符号后面。

我尝试进行查找和替换,匹配模式/\AAA*/并将其替换为/,但这不起作用:

sed -i -r 's/\/\\AAA*\//\//g' file.txt

我有GNU sed版本4.2.1。

1 个答案:

答案 0 :(得分:1)

只需移除/\AAA/之间的所有内容即可。如果模式或替换包含/

,则使用替代字符来分隔模式可提高可读性
sed 's,/\\AAA[^/]*/,/,g'
相关问题