這裏有一個紅寶石的一行,將盲目轉引自條目中刪除逗號:
ruby -rcsv -e 'CSV.foreach(ARGV.shift) {|row| puts CSV.generate_line row.map {|elem| elem.delete(",")}}' file.csv
col1,col2,col3,col4,col5,col6
abc,edf,123456789,1234,133233456,20/01/2016
ogfsf,dcfdc,0,1456,134567456,11/01/2016
jkglt,mnbc,0,0,132467876,05/01/2016
如果你有一個像
"hello,world",foo,"1,234"
你會想數據將逗號保留在字符串字段中。在這種情況下,
$ cat file.csv
col1,col2,col3,col4,col5,col6
abc,edf,"123,456,789","1,234","133,233,456",20/01/2016
"a,b,c","d,e,f",0,0,0,0
$ ruby -rcsv -e '
CSV.foreach(ARGV.shift) do |row|
puts CSV.generate_line (
row.map do |elem|
elem.match(/^\d+(,\d\d\d)+$/) ? elem.delete(",") : elem
end
)
end
' file.csv
col1,col2,col3,col4,col5,col6
abc,edf,123456789,1234,133233456,20/01/2016
"a,b,c","d,e,f",0,0,0,0
這對'sed'和'awk'來說當然是可行的。你嘗試了什麼?當然,最好的解決方案可能是教你的導入工具正確處理帶引號的字符串中的逗號。 – 5gon12eder