我有一个文本文件,其中一列包含文本/数据,后跟丰度列,例如
3号车
苹果2
为了对这些列进行二次采样,我想按丰度列的数量复制每个文本列,例如
车1
车1
车1
苹果1
苹果1
知道如何使用 awk 来实现这一点吗?
答案1
如果我正确理解这个问题你可以这样做
awk '{for(i=0;i<$NF;i++)print $1,"1\n"}' file
找到了一条更短的路
awk '{while($2--)print $1,"1\n"}' file
答案2
尝试
awk '{ for (i=$2 ; i ; i--) printf "%s 1\n",$1 ; } ' < text
在哪里
- `for (i=$2 ; i ; i--)` is a loop that starting from second field value decrease to 1
- `printf "%s 1\n",$1` print first field with a 1