我正在尝试清理mongo数据库转储。我要替换字母数字字符后跟空格的所有'\“'。这是我到目前为止
sed -e 's/[a-zA-Z0-9]\\"/ /g' a.txt
所拥有的问题是,此sed不仅替换了'\'',而且替换了紧接其前的一个字符。我想要输出'mystring'
您可以在正则表达式模式中使用捕获组,并\1
在替换部分中使用占位符,以恢复字母数字字符:
sed -e 's/\([a-zA-Z0-9]\)\\"/\1 /g' a.txt
^^ ^^ ^^
您可以替换[a-zA-Z0-9]
为[[:alnum:]]
,使正则表达式更加惯用([:alnum:]
匹配所有字母数字字符)。
s='mystring\"'
sed -e 's/\([a-zA-Z0-9]\)\\"/\1 /g' <<< "$s"
# => mystring
sed -e 's/\([[:alnum:]]\)\\"/\1 /g' <<< "$s"
# => mystring
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句