我正试图替换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/

10-10 14:06