我有一个包含两个字段x和y的数据集。 x可能有多个输出y。例如:
X1,Y11,Y12,Y13,...,Y1N
X2,Y21
X3,Y31,Y32
...
我想操纵数据,看起来像:
X1,Y11
X1,Y12
X1,Y13
...
x1,y1n
X2,Y21
X3,Y31
X3,Y32
...
我正在尝试使用sed
执行此操作。请帮忙。
答案 0 :(得分:2)
使用awk:
awk -F"," '{ for (i=2; i<=NF; i++) print $1","$(i) }' input.txt
将字段分隔,
并循环遍历一行中的所有字段,从第二个字段开始,以最后一个字段结束(NF
=字段数)并始终打印第一个字段和第i场。
答案 1 :(得分:1)
这可能适合你(GNU sed):
sed -r 's/(([^,]*),[^,]*),/\1\n\2,/;P;D' file