最初の列に基づいて複数の列を2つの列に分割する方法

最初の列に基づいて複数の列を2つの列に分割する方法

以下のようにタブ区切りの列テキストがあります。

A    1   12  13
B    3   4   5 
C    6   17   8
D    19   10  11

上記の表を次のように変換するにはどうすればよいですか?

A    1
A    12
A    13
B    3
B    4
B    5
C    6
C    17
.
.
.

ベストアンサー1

awkを使用してください:

$ awk '{for (i=2;i<=NF;i++) print $1,$i}' file
A 1
A 12
A 13
B 3
B 4
B 5
C 6
C 17
C 8
D 19
D 10
D 11

出力をタブで区切るには、次のOFS変数を使用できます。

$ awk -v OFS='\t' '{for (i=2;i<=NF;i++) print $1,$i}' file
A   1
A   12
A   13
B   3
B   4
B   5
C   6
C   17
C   8
D   19
D   10
D   11

おすすめ記事