簡體   English   中英

UNIX Sed命令將雙引號“替換為2單引號”

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM