我正试图替换CSV中的一个字符串,该字符串以~结尾,它类似于密码,我想转义分隔符以停止。
我使用:
sed -i "s/\(z.*\~\)/\"\1\"/g"
可以,但是
~
没有转义,regex进入行的最后一个。是“停止”匹配任何以
~
停止的字符的方法这些就是我有的例子。第二部分是正确的,因为我想用双引号引用子表达式:
zTG*?KM)ии*v=?~~~~~
zTG*?KMии$FhB?~S~~~~
我想拥有(或停止)
"zTG*?KM)ии*v=?"~~~~~
"zTG*?KMии$FhB?"~S~~~~
但在最高层我有:
"zTG*?KM)ии*v=?~~~~~"
"zTG*?KMии$FhB?~S~~~~"
最佳答案
echo 'zTG*?KM)ии*v=?~~~~~' | sed -En 's|([^~]+)|"\0"|p'
结果:
"zTG*?KM)ии*v=?"~~~~~
对我有用。
关于regex - 当我匹配所有字符时,在SED中转义〜,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41568849/