我想使用sed将所有'
替换为\'
,将所有"
替换为\"
。示例输入:
"a" 'b'
输出:
\"a\" \'b\'
答案 0 :(得分:1)
您的帖子中没有?
个字符,但我会假设您的问题是“我该如何替换?”。我刚刚用你的输入做了一个快速测试文件,这个命令行似乎有效:
sed -e 's#"#\\"#g' -e "s#'#\\\'#g"
示例:
$ cat input
"a" 'b'
$ sed -e 's#"#\\"#g' -e "s#'#\\\'#g" input
\"a\" \'b\'
答案 1 :(得分:1)
虽然使用sed
是可移植的解决方案,但所有这些都可以使用Bash
的内置字符串操作函数来完成。
(
#set -xv
#str=$'"a" \'b\''
str='"a" '"'b'" # concatenate 'str1'"str2"
str="${str//\"/\\\"}"
str="${str//\'/\'}"
echo "$str"
)