我是awk命令的新手,我有其中包含管道的數據,我想用逗號替換這些管道。下面是數據樣本使用awk命令替換雙引號csv文件中的管道使用逗號
"PT3QB789TSUIDF371261","THE TORONTO|DOMINION BANK","2016-05-24T00:36:42Z","ANZ BANK NEW| ZEALAND LIMITED","HZSN7FQBPO5IEWYIGC72","MAS|CA.ON.OSC|ASIC*|AAAA"
"PT3QB789TSUIDF371261","ABC|XYZ|123","2016-05-24T00:36:42Z","ANZ BANK NEW ZEALAND LIMITED","HZSN7FQBPO5IEWYIGC72","MAS|CA.ON.OSC|ASIC*"
我的輸出看起來應該是
"PT3QB789TSUIDF371261","THE TORONTO,DOMINION BANK","2016-05-24T00:36:42Z","ANZ BANK NEW, ZEALAND LIMITED","HZSN7FQBPO5IEWYIGC72","MAS,CA.ON.OSC,ASIC*,AAAA"
"PT3QB789TSUIDF371261","ABC,XYZ,123","2016-05-24T00:36:42Z","ANZ BANK NEW ZEALAND LIMITED","HZSN7FQBPO5IEWYIGC72","MAS,CA.ON.OSC,ASIC*"
我想下面的命令,沒有工作對我來說
awk -F"\"" 'BEGIN{OFS="\""}{for(i=1;i<=NF;++i){ if(i%2==0) gsub(/|/, ",", $i)}} {print $0}' file
請幫我awk命令。謝謝我提前。
一個簡單的'sed的 'S/| /,/ G' file'會爲給定的樣本做..任何其他理由,爲什麼你正在使用'awk'? – Sundeep
你的命令的一個問題是'/ | /'...'|'是元字符,所以它應該是'/ \ | /' – Sundeep
爲什麼?這會讓你的文件很難用命令行工具做任何事情,因爲它們需要額外的邏輯來區分字段之間的逗號和字段之間的逗號。 –