我有一個CSV,我想知道如何通過-
更換換行,只需在兄弟柱,與bash
:格式化項目從CSV提要文件
name,brothers,age,adress
------------------------
john,"marc
peter
paul
alex",18,street
thomas,mike,20,place
我有一個CSV,我想知道如何通過-
更換換行,只需在兄弟柱,與bash
:格式化項目從CSV提要文件
name,brothers,age,adress
------------------------
john,"marc
peter
paul
alex",18,street
thomas,mike,20,place
在awk非常適合這個
awk -v RS='^$' -v ORS= '{while (match($0,/"[^"]+"/,a)) {gsub(/\n/," ",a[0]); print substr($0,1,RSTART-1) a[0]; $0=substr($0,RSTART+RLENGTH)} print}' your.csv
輸出:
me,brothers,age,adress
------------------------
john,"marc peter paul alex",18,street
thomas,mike,20,place
完美,非常感謝 –
的csvtool
,sed
,& bash
笨拙的組合:
csvtool pastecol 2 1- \
input.csv
<(csvtool col 2 input.csv | \
sed -n '/"/,/"/{:a;N;$!ba;s/\([^"]\)\n/\1-/g;};p') | \
csvtool trim r -
輸出:
name,brothers,age,adress
------------------------
john,marc-peter-paul-alex,18,street
thomas,mike,20,place
除sed
的一部分,它不是那麼糟糕。 csvtool
用編輯後的副本替換列。最後它修剪了一個額外的逗號csvtool
卡在那裏。
您需要一個正確的CSV解析器,並且Stack Overflow不是要求'bash'中的某個人推薦的地方。 – chepner