我有一个这样的文件:

A 10,30,50,70 20,40,60,80 +

我怎样才能做到:
A 10 20 +
A 30 40 +
A 50 60 +
A 70 80 +

我试过使用awk命令,但没有成功。
awk '{ split($2,a,","); for (i in a) print $1, a[i]; }'

最佳答案

创建另一个拆分数组b,其中保留第三列元素:

echo "A 10,30,50,70 20,40,60,80 +" | awk '{ split($2,a,","); split($3,b,","); for (i in a) print $1, a[i],  b[i], $4; }'

关于linux - 如何将逗号分隔的字段转换为不同的行?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39819586/

10-16 06:49