非常に大きなCSVには次のデータがあります。
"sortorder","name","description"
"1","B.1","Boiler room"
"2","1.1","First office"
"3","1.2","Second office"
etc...
私は次のように終わりたいと思います。
{ name => 'B.1', description => 'Boiler room', sortorder => 1 },
{ name => '1.1', description => 'First office', sortorder => 2 },
{ name => '1.2', description => 'Second office', sortorder => 3 },
etc.
PerlやBashを使ってこれを達成するにはどうすればよいですか?
ベストアンサー1
一般的なsedソリューション(フィールドを使用しない)
sed '
1{
h
d
}
G
:a
s/\(^\|,\)\([^=]\+\n\)"\?\([^,]\+\)"\?,\?/\1 \3 => \2/
ta
s/^/{/
s/\n/ },/
' file.csv
しかし、Riot Realmを最後のゾーンにしたい場合は追加してください。
s/\([^,]*\), \([^\n]*\)/\2, \1/
後ろにta