[英]How to replace single quote (') with double quote (") in a file using unix shell script/commands? Apostrophe must not be replaced
[英]UNIX Sed Command to Replace double quote " with 2 single quote ''
我的文件有這樣的記錄
Nitin "Nick" Patel
我想將雙引號替換為2個單引號:
Nitin ''Nick'' Patel
我嘗試了命令
sed -i "s/\Nitin "Nick" Patel/Nitin ''Nick''Patel/g" test1.csv
但不幸的是它並沒有取代任何東西。 請指教。
sed "s/\"/''/g" File
Nitin ''Nick'' Patel
或者(根據確切的要求,前一個將用2 '
代替所有的"
'
):
sed "s/Nitin \"Nick\" Patel/Nitin ''Nick'' Patel/g" File
Nitin ''Nick'' Patel
在命令行上混合使用單引號和雙引號需要特別注意。 這可能就是為什么要求您這樣做的原因。 使用命令行:
sed -i "s/\Nitin "Nick" Patel/Nitin ''Nick''Patel/g" test1.csv
該外殼實際上刪除了嵌入的雙引號(實際上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
一個可以嘗試:
sed -i "s/\x22/\x27\x27/g" test1.csv
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.