
我有一個文字文件,其中一列包含文字/數據,後面跟著豐度列,例如
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