2011-10-03 113 views
33

我有一個名爲file.txt的文件。它有許多雙引號。我想刪除所有這些。如何使用sed刪除文件中的所有雙引號

我已經試過sed 's/"//g' file.txt

我已經試過sed -s "s/^\(\(\"\(.*\)\"\)\|\('\(.*\)'\)\)\$/\\3\\5/g" file.txt

無論工作過。

如何刪除文件中的所有雙引號?

+0

你首先應該試圖在一個普通的ASCII文件的工作。也許你正在處理的文件包含Unicode「,而不是? – holygeek

回答

76

你只需要逃避你的第一個例子報價:

$ sed 's/\"//g' file.txt 
+2

我跑了這個,在屏幕上它飛過了成千上萬的條目和引號已經消失。但在file.txt中,引號是 – MRTim2day

+6

是的,'sed'默認輸出爲標準輸出,不接觸輸入文件,如果你想將輸出保存到一個文件中,請執行'sed's/\「// g'file.txt> file_new.txt「,然後當你對file_new.txt滿意時,刪除舊文件並重命名新文件。 – Vicky

+7

或者如果你的'sed'支持'-i'選項,那麼它應該讓你用編輯好的文件替換文件。 – tripleee

2

您可以嘗試在expresssion反斜槓前面加上雙引號:

sed 's/\"//g' [file name] 
+1

我跑了這個,它在屏幕上飛行了數千個條目並且引號都沒有了,但是在file.txt中,引號還在那裏 – MRTim2day

+0

我跑了這與csv文件和所有的數據都沒有了。我累了幾次與相同的結果。 – Katarzyna

3

其他評論。是的,這工作:

sed 's/\"//g' infile.txt > outfile.txt 

(但是有一批GNU sed中,將只打印到屏幕)

在批處理腳本(GNU SED),這需要:

sed 's/\x22//g' infile.txt > outfile.txt 
24

確定你需要使用sed?如何:

tr -d "\"" 
+0

如果需要刪除所有種類的引號,該怎麼辦?如果它需要與unicode一起工作呢? –

3

對於地方更換你也可以這樣做:

sed -i '' 's/\"//g' file.txt 

或Linux的

sed -i 's/\"//g' file.txt 
相關問題