あきろぐ

いろいろめもするよ

【めも】csvファイルを良い感じに整形・結合して使いやすくしたい

何をしたいのか

アイテム名と値が別々のcsvファイルに吐き出されているので、2つのファイルを整形し1つのファイルにします。sedコマンドでファイルの整形できるけど、アイテム名-値が横に並ぶように結合するときに使えるコマンドあったかなと思い調べたのでそのメモです。

どうしたのか

  • sedコマンドでカンマを改行に変換する

出力されたcsvファイルは以下のような感じです。1行分が1回分のデータです。
f:id:akngo22:20190707002104p:plain

一番最新のデータを取得した後、カンマを改行に変換してファイルに出力します。

#2つのファイルをそれぞれ変換する
tail -1 item.csv | sed -e 's/,/\n/g' > item.txt
tail -1 data.csv  | sed -e 's/,/\n/g' > data.txt
  • pasteコマンドで2つのファイルを横に結合する
paste item.txt data.txt > item_data.txt

結果

こんな感じでアイテム名と値が横に並び見やすくなりました。

$ cat item_data.txt
item    1
item    1
item    1
item    1
item    1

番外編

pasteコマンドで-sオプションを使えば行と列を入れ替えることができます。

$ paste -s item.txt data.txt > item_data2.txt
$cat item_data2.txt
item    item    item    item    item    item    item    item    item    item    item    item    item    item    item    item    item    item    item    item    item    item    item    item    item    item
1       1       1       1       1       1       1       1       1       1       1       1       1       1       1       1       1       1       1       1       1       1       1       1       1       1

おわり