我正在尝试匹配并替换很多文件中的字符串。
要搜索的字符串:
</ANON>[any non-whitespace char], e.g. "</ANON>." or "</ANON>)"
我想在标记和非空白字符之间粘贴一个空格。
我尝试用sed这样做:
sed -i -e 's/<\/ANON>/S/<\/ANON> /S/g'
但是,这不起作用。
任何帮助都非常感激。
答案 0 :(得分:2)
尝试以下方法:
sed -i -e 's|\(</ANON>\)\([^[:space:]]\)|\1 \2|g' file
它不是Perl,你不能将\ S用于非空格字符。您还应捕获组并在替换部件中使用它们。你也不能使用/ S因为1)它是错误的2)sed使用斜线来分离带有模式,替换和标志的部分。
P.S。或者,如果您愿意,可以使用Perl:
perl -p -i -e 's|(</ANON>)(\S)|$1 $2|g' file