关于将(“)双引号替换为(')单引号,我对sed的使用有点困惑。我在sed中尝试了很多组合,但不知怎的,它不允许这种特殊的转换。
非常感谢任何帮助。
ps:我也对其他替换方法持开放态度,但它应该在bash中运行良好(UNIX)
答案 0 :(得分:2)
您可以使用is as:
s='abc"def"123'
echo "$s"|sed "s/\"/'/g"
abc'def'123
答案 1 :(得分:2)
如果只替换一个字符,您也可以使用tr
:
$ printf '%s\n' '"Hello"' | tr \" \'
'Hello'
现在我希望你不是以某种方式“消毒”一些用户输入......
答案 2 :(得分:1)
您可以尝试这样的事情:
[ ~]$ echo "'Hello'"|sed "s/'/\"/g"
"Hello"
相反:
[ ~]$ echo \"Hello\"|sed "s/\"/'/g"
'Hello'
否则,如果您愿意,可以使用tr
代替sed
:
[ ~]$ echo \"Hello\"|tr "\"" "'"
'Hello'
答案 3 :(得分:0)
这可能对您有用:
sed 'y/'\''/"/' file