我的档案有这样的记录
Nitin "Nick" Patel
我想用双引号替换双引号:
Nitin ''Nick'' Patel
我尝试了命令
sed -i "s/\Nitin "Nick" Patel/Nitin ''Nick''Patel/g" test1.csv
但不幸的是它并没有取代任何东西。 请指教。
答案 0 :(得分:2)
sed "s/\"/''/g" File
Nitin ''Nick'' Patel
或(根据具体要求,前一个会将所有"
替换为2 '
):
sed "s/Nitin \"Nick\" Patel/Nitin ''Nick'' Patel/g" File
Nitin ''Nick'' Patel
答案 1 :(得分:0)
在命令行上混合单引号和双引号需要小心。这可能就是你被要求这样做的原因。使用命令行:
sed -i "s/\Nitin "Nick" Patel/Nitin ''Nick''Patel/g" test1.csv
shell实际上删除了嵌入的双引号(实际上sed
没有看到任何双引号) - 就像你写的那样:
sed -i "s/\Nitin Nick Patel/Nitin ''Nick''Patel/g" test1.csv
我不确定为什么你在搜索字符串的Nitin
的N之前加上反斜杠。
有多种方法可以进行必要的替换,包括:
sed -i.bak "s/Nitin \"Nick\" Patel/Nitin ''Nick'' Patel/g" test1.csv
sed -i.bak 's/Nitin "Nick" Patel/Nitin '\'\''Nick'\'\'' Patel/g' test1.csv
sed -i.bak -f script.sed test1.csv
script.sed
包含:
s/Nitin "Nick" Patel/Nitin ''Nick'' Patel/g
答案 2 :(得分:0)
有人可能会尝试:
sed -i "s/\x22/\x27\x27/g" test1.csv