くんすとの備忘録

IT系技術メモ

移転しました。

15秒後に自動的にリダイレクトします。

【シェル芸】bashのワンライナーでクロス集計(※sedもawkも使わないプレイ)

きっかけ

ここここを見ていたら、やってみたくなったので・・・

内容

仕様(やりたいこと)

こんなファイル
[sample.txt]

を、集計して、こんな感じ

Ice Juice OREO
A 310 0 0
B 130 120 0
I 0 0 630
,Ice,Juice,OREO
A,310,0,0
B,130,120,0
I,0,0,630

に変換します。

※ここでは、CSV形式で出力


処理をシェルスクリプトで書くと

[cross_tabulation.sh]


これをワンショットにすると

[cross_tabulation_1liner.sh]

出力結果

,Ice,Juice,OREO
A,310,0,0
B,130,120,0
I,0,0,630

使用したコマンド

  • cat
  • tr
  • cut
  • sort
  • xargs
  • bash
  • grep
  • bc
  • echo

のみ!

sedawkもつかわないので、しょしんしゃにもやさしいね!


おつかれさまでした(´▽、`*)