根据列值复制文本文件中的行

根据列值复制文本文件中的行

我有一个文本文件,其中一列包含文本/数据,后跟丰度列,例如

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

相关内容