請問一個sed處理文字檔的的寫法 - Linux

Table of Contents

請問一個問題,我有一個文字檔0.txt如下:

123,"123,123",789,876,
123,456,789,876,
123,456,789,123,"456,456",
111,222,333,444,555
請問我要如何使用sed指令,去掉雙引號以及雙引號裡面的逗點,使檔案變成如下的檔案?

123,123123,789,876,
123,456,789,876,
123,456,789,123,456456,
111,222,333,444,555

謝謝大家。
我的寫法如下,但是不對。
sed "/\"/,/\"/s/\,//" 0.txt

--

All Comments

Lydia avatarLydia2017-08-24
做兩次 先拿掉""裡面的, 再拿掉"
Suhail Hany avatarSuhail Hany2017-08-28
sed 's/"\([0-9]*\),\([0-9]*\)"/\1\2/g' 0.txt
Andrew avatarAndrew2017-08-29
"" 裡只會有一個 , 還是有可能有多個?
Zenobia avatarZenobia2017-08-31
用 csv parser 吧,或 awk 好像有個選項可以讀 csv
Brianna avatarBrianna2017-08-31
js: fileString.replace(/".*?"/g, (s) =>
Kelly avatarKelly2017-09-04
s.slice(1,-1).replace(/,/g, ''))
Gary avatarGary2017-09-04
perl -pe 's{".*?"}{ substr $& =~ s/,//g, 1, -1 }ge'
或 perl -pe 's{".*?"}{ $& =~ s/[",]//g }ge'
Susan avatarSusan2017-09-05
呃,上面二行第二個 regexp 要加 flag r
Xanthe avatarXanthe2017-09-10
perl的話用Regexp::Common模組有現成的測試成對引號的函式
Damian avatarDamian2017-09-15
尤其是引號內允許 \"之類的東西出現時 不用自己寫額外測試
Gary avatarGary2017-09-17
Tormentor的方法好,奈何"裏面多於一個,就不行
Ethan avatarEthan2017-09-20
s/"\([0-9]*\),\([0-9]*\),\([0-9]*\)"/\1\2\3/g
Jacob avatarJacob2017-09-22
樓上,你這樣只有一個,的不會替換到吧
Ula avatarUla2017-09-29
那三個,四個,....
Kumar avatarKumar2017-10-02
有人用 awk 刻了 csv parse https://goo.gl/aPo9ey
Hedda avatarHedda2017-10-04
改一下就可以用了 (把第一個 gsub 的 \\, 刪掉)
Oscar avatarOscar2017-10-04
https://pastebin.com/J0q5t4wZ 多個逗點之sed版本