根據列值複製文字檔案中的行

根據列值複製文字檔案中的行

我有一個文字文件,其中一列包含文字/數據,後面跟著豐度列,例如

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

相關內容