私は以下のCSVを持っています
col1,col2,col3,col4,col5
1,val1,57,val1,TRUE
,val2,,val2,
,val3,,val3,
,val4,,val4,
,val5,,val5,
2,val1,878,val1,FALSE
,val2,,val2,
,val3,,val3,
,val4,,val4,
,val5,,val5,
以下のようにawkを使用して出力を表示する必要があります。
col1,col2,col3,col4,col5
1,val1#val2#val3#val4#val5,57,val1#val2#val3#val4#val5,TRUE
2,val1#val2#val3#val4#val5,878,val1#val2#val3#val4#val5,FALSE
ベストアンサー1
簡単で読みやすく移植可能な状態に保ちます(主に私は経験があまりないためですawk
、ヘヘ)。
BEGIN { FS=","; OFS="," }
NR < 3 {
print # just echo header and separator lines
}
/^[0-9]/ {
if (NR > 3) {
# concatenate all parts (note: csv because of OFS not the commas here)
print part1,part2,part3
}
part1 = $1 OFS $2
part2 = $3 OFS $4
part3 = $5
}
/^,/ {
part1 = part1 "#" $2
part2 = part2 "#" $4
}
END { print part1,part2,part3 }
結果:
col1,col2,col3,col4,col5
1,val1#val2#val3#val4#val5,57,val1#val2#val3#val4#val5,TRUE
2,val1#val2#val3#val4#val5,878,val1#val2#val3#val4#val5,FALSE