シェルワンライナー160本ノック問題52
問題52 集計形式の変換
問題のファイルは
https://github.com/shellgei/shellgei160
からダウンロードできる。
クロス集計表を1レコード1行の形式に変換する問題だった。まったく思いつかなかった。
解答例は
awk 'FNR==1{$1="";h=$0}FNR!=1{print FILENAME,$0,h,NF-1}' data_U data_V | awk '{for(i=NF-$NF;i<NF;i++)print $1,$2,$i,$(i-$NF)}' | sed 's/data_//'
となる。まず1行1レコードに直している。次にファイル名とデータの個数を付け加えている。最後にペアを作って整形している。
なんだか前にも似たような失敗をした気がする。相変わらず複数行にわたる処理ができていない。