csvファイルを配列として印刷/エクスポート

csvファイルを配列として印刷/エクスポート

非常に大きな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

おすすめ記事