我有一个制表符分隔的列文本,如下所示
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