テーブルを転置する簡単なスクリプト

テーブルを転置する簡単なスクリプト

CSVテーブルを転置するスクリプトを作成しようとしています。いくつかのファイルがあります。

head1;head2;head3
field11;field12;field13
field21;field22;field23

(ちょっと待ってください。)私は欲しい

head1;field11;field21
head2;field12;field22
head3;field13;field23

私はこれを行う方法さえ知らない。スクリプトの作成を要求するものではありません。標準シェルでスクリプトを作成する方法についてのアイデアが必要です。 (残念ながら、bashismまたはGNU拡張は使用できません。POSIXのみ使用できます。)

PSは実際に行うことができますが、醜くて非効率的です。私はもっ​​と美しい方法があると信じています。

ベストアンサー1

データ転置

head1;head2;head3
field11;field12;field13
field21;field22;field23
field31;field32;field33

これはGNUを使用して行うことができますdatamash

$ datamash -t ';' transpose <file
head1;field11;field21;field31
head2;field12;field22;field32
head3;field13;field23;field33

おすすめ記事