列値に基づいてテキストファイルから行をコピーする

列値に基づいてテキストファイルから行をコピーする

テキスト/データを含む1つの列と、その後に豊富な列があるテキストファイルがあります。

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

関連情報