簡體   English   中英

用Sed Linux替換雙反斜杠雙引號

[英]Replacing Double Backslash Double Quotes with Sed Linux

我想在用\\\\'處理文件之前替換\\\\“,然后在處理文件后需要將\\\\'替換回\\\\”。

輸入文件testreplace

"dsd" "\N" "gary\\""
"ghj" "fandango\\\"" "\N"
"jjj"" "hjh" "gfgfgfg\\"
"ee" "gg\"" "\N"

使用sed將//“替換為//”時出現問題。我使用了以下命令。

sed "s/\\\\\"/\\\\\'/g" testreplace > testreplaceopt

但是此命令也用\\替換\\“,但是我想在只有兩個反斜杠時替換

處理完文件后,我嘗試使用以下命令將\\\\'替換為\\\\“

sed "s/\\\\\'/\\\\\"/g" testreplaceopt > testreplace_back

但它沒有被取代

任何幫助,將不勝感激。

sed替換中可以使用不同的定界符。

在sed語句中使用哈希字符或加號字符,在雙引號中使用單引號。

我想提到的另一件事是使用雙反斜杠字符,而不是在單引號語句中為每個反斜杠字符使用一個。

例如:

$ cat /tmp/aa |sed -r 's+\\\\"+\\\\'"'"'+g'
"dsd" "\N" "gary\\'"
"ghj" "fandango\\\'" "\N"
"jjj"" "hjh" "gfgfgfg\\'
"ee" "gg\"" "\N"

或者如果您想在sed語句中使用'+'char而不是'/':

$ cat /tmp/aa |sed -r 's+\\\\"+\\\\'"'"'+g'
"dsd" "\N" "gary\\'"
"ghj" "fandango\\\'" "\N"
"jjj"" "hjh" "gfgfgfg\\'
"ee" "gg\"" "\N"

在sed中使用不同的分隔符

希望對您有所幫助

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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