Man*_*bae 5 command-line bash sed
我有
echo "A url: \\\"http:..."
Run Code Online (Sandbox Code Playgroud)
它读取"A url: \"http:..."
(< - 这是我的文本文件中的样子)
我需要
echo "A url: \'http:..."
Run Code Online (Sandbox Code Playgroud)
但是由于所有引号,我的 sed 命令无法正常工作
echo "A url: \\\"http:..." | sed -r 's/\\"+/\\\'/g'
Run Code Online (Sandbox Code Playgroud)
我可以理解为什么它失败了(sed 语句中间的单引号是问题所在,但我该怎么办?我尝试寻找第三种类型的引号来使用,但找不到。有任何技巧吗?
如果你想改变任何出现的\"
with \'
,你可以这样做:
$ echo "A url: \\\"http:..." | sed -r "s/\\\"/\\'/g"
A url: \'http:...
Run Code Online (Sandbox Code Playgroud)
只需用于"
您的外部引号,sed
然后您就可以'
在替换中使用。您不想要,"+
除非您可能有多个连续的"
并且您想替换所有这些。如果这样做,请使用sed -r "s/\\\"+/\\'/g"
.
归档时间: |
|
查看次数: |
16076 次 |
最近记录: |