複数の列を作成するのに助けが必要です。

複数の列を作成するのに助けが必要です。

データを複数の列に変換する必要があります。入力データ:

a1 n1
a2 n2
a3 n3
.  .
.  .
.  .
an nn
a1 m1
a2 m2
a3 m3
.  .
.  .
.  .
an mn
a1 x1
a2 x2
a3 x3
.  .
.  .
.  .
an xn
a1 y1
a2 y2
a3 y3
.  .
.  .
.  .
an yn
a1 z1
a2 z2
a3 z3
.  .
.  .
.  .
an zn

上記のデータを複数の列に変換したいです。私の出力データは次のようになりたいです。

a1 n1 m1 x1 y1 z1
a2 n2 m2 x2 y2 z2
a3 n3 m3 x3 y3 z3
.  .  .  .  .  .
.  .  .  .  .  . 
.  .  .  .  .  .
an nn mn xn yn zn

この変換を助けてください。私はLinuxを使用しています。

ありがとうございます。

ベストアンサー1

以下は、awkで連想配列を使用する良い例です。

$ awk  '{a[$1]=a[$1]"   "$2} END {for (i in a) print i, a[i]}' q763033 
a1    n1   m1   x1   y1   z1
a2    n2   m2   x2   y2   z2
a3    n3   m3   x3   y3   z3
an    nn   mn   xn   yn   zn

入力ファイル q763033 は次のようになります。

$ cat q763033
a1 n1
a2 n2
a3 n3
an nn
a1 m1
a2 m2
a3 m3
an mn
a1 x1
a2 x2
a3 x3
an xn
a1 y1
a2 y2
a3 y3
an yn
a1 z1
a2 z2
a3 z3
an zn

おすすめ記事