私は過去数日間、次のデータを非常にすばやく転置できる一連のコマンドラインツール、perlまたはawkスクリプトを探していました。
Row|Col|Val
1|A|foo
1|B|bar
1|C|I have a real
2|A|bad
2|C|hangover
これに:
A|B|C
foo|bar|I have a real
bad||hangover
データセットには、各「セル」の値が1つしかないことに注意してください(つまり、スプレッドシートの場合と同様に、行「1」、列「A」の重複はありません)。
データを転置するためにさまざまなawkシェルの実装を試しましたが、それらを機能させることができないようです。私が持っていたアイデアの1つは、各「Col」値を個別のファイルに切り取り、「join」コマンドラインを使用して「Row」で元に戻すことでしたが、もっと簡単な方法が必要です。これは非常に簡単に実行できると確信していますが、少し苦労しています。
私の入力ファイルには、列AからG(主に可変長の文字列を含む)と10,000行があります。すべてをメモリにロードすることを避けることができれば、それは大きなプラスになります。
答えがわかれば誰でもメールでビール!
いつものように-あなたの助けに前もって感謝します。
乾杯、
ジョシュ
ps-この非常に基本的なタイプのピボット/転置操作を実行するためのすぐに使用できるコマンドラインユーティリティがないことに少し驚いています。http://code.google.com/p/openpivot/とhttp://code.google.com/p/crush-tools/を調べましたが、どちらも集計計算が必要なようです。