我有
echo "A url: \\\"http:..."
内容为"A url: \"http:..."
(<- 这是我文本文件中的内容)
我需要
echo "A url: \'http:..."
然而,由于所有的引号,我的 sed 命令无法正常工作
echo "A url: \\\"http:..." | sed -r 's/\\"+/\\\'/g'
我知道为什么它会失败(sed 语句中间的单引号是问题所在,但我该怎么办呢?我尝试寻找第三种类型的引号,但没找到。有什么办法吗?
答案1
如果你想改变任何出现的\"
with \'
,你可以这样做:
$ echo "A url: \\\"http:..." | sed -r "s/\\\"/\\'/g"
A url: \'http:...
只需使用"
来作为您的外引号sed
,然后您就可以在替换中使用。除非您可能有多个连续的引号并且想要替换它们,否则'
您不需要。如果需要,请使用。"+
"
sed -r "s/\\\"+/\\'/g"