列の値に応じてテキストファイル内の行を複製する

列の値に応じてテキストファイル内の行を複製する

テキストファイルがあり、テキスト/データを含む列の後に豊富さの列が続きます。例:

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

関連情報