2016-03-17 108 views
-1

我在awk中有增量問題。我想增加在循環中使用的參數。 Awk看起來像這樣:awk在破折號增量

awk -F ',' '{printf ("*."$1)}' 

我不知道如何在循環中增加參數。 awk -F ',' '{printf ("*."$2)}'

後第二次迭代:

第一次迭代後awk -F ',' '{printf ("*."$3)}'

感謝您的幫助

回答

0

你可以寫一個for循環中,我假設你想遍歷那些會有NF的元素。

awk -F, '{for(i=1;i<=NF;i++) printf "*.%s\n", $i} 

更好地提出一個樣本輸入和期望的輸出以獲得更好的SO幫助。

$ echo c,ccc,ccccc,ppm,sad,sh,txt,txt | 
    awk -F, '{for(i=1;i<=NF;i++) printf "suffix[%d]=%s\n",i, $i}' 

suffix[1]=c 
suffix[2]=ccc 
suffix[3]=ccccc 
suffix[4]=ppm 
suffix[5]=sad 
suffix[6]=sh 
suffix[7]=txt 
suffix[8]=txt 
如果你想他們是在用 ;分隔符同一直線上,從printf的刪除\ n和添加 -v OFS=';'作爲 awk選項

+0

我想爲每一個無效行爲做這樣的事情:sort -ns | awk'{print;總額+ = $ 1}; END {print total}'| tail -n 1. 感謝您的幫助:) – Rtiksvk

+1

請用示例輸入和預期輸出更新您的問題。您可以一次添加所有列,不需要顯式迭代。 – karakfa

+0

輸入(如下所示):c,ccc,ccccc,ppm,sad,sh,txt,txt〜 輸出:後綴[1] =「* .c」;後綴[2] =「*。ccc」;等等 – Rtiksvk