我正试图用'(引用)替换\“(反斜杠双引号)使用sed。
sed "s/\\\"/\'/g" file.txt
该命令无法按预期工作。它取代了所有“在文本文件中,而不仅仅是”。
与sed“s / \”/ \'/ g“file.txt
相同我正在使用Mac OS X Leopard。
有人有线索吗?
答案 0 :(得分:8)
你正在处理臭名昭着的shell引用问题。尝试在s // g周围使用单引号,或添加额外的转义:
sed "s/\\\\\"/\'/g"
答案 1 :(得分:2)
使用bash引用问题很有趣。
$ cat input "This is an \"input file\" that has quoting issues." $ sed -e 's/\\"/'"'"'/g' input "This is an 'input file' that has quoting issues."
请注意,有三个字符串对接在一起以生成sed脚本:
s/\\"/
'
/g
第一个和最后一个引用单引号,中间引用双引号。
马修的命令通过加入两个字符串而不是三个字符串来起作用:
s/\\"/
'/g
其中第一个是单引号,第二个是双引号。
答案 2 :(得分:0)
不必使用太多的引号。 \ 042八进制用于"
,\ 047是八进制用于单引号
awk '{gsub("\042","\047") }{print}' file