【发布时间】:2012-10-03 15:37:01
【问题描述】:
我有一个这样的文件:
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 版。
【问题讨论】:
-
*是一个元字符,表示零个或多个前面的字符或组。所以A*表示零个或多个A。您必须提供\(AAA\)*来表示零个或多个AAA。但是您的意图是[/][^/]*AAA[^/]*[/]
标签: sed