2013-03-30 177 views
3

我試圖打印只有奇數列,但我不能!用AWK打印列

awk '{for (i=1; i<=NF; i++) print $2*i-1}' file > test 

但它打印一列中的所有內容!

你能幫我嗎?

謝謝

回答

5

只需使用i+=2

awk '{ for (i=1;i<=NF;i+=2) print $i }' file > test 

對於新的要求,才使空的 '偶數' 列:

awk '{ for (i=2;i<=NF;i+=2) $i="" }1' file > test 
+0

我只是覺得它,但另一個問題。一切都會在一列 – EpiMan

+0

你能解釋一下爲什麼你把1放在後面? – EpiMan

+1

@MaryamSani:最後的'1'強制'awk'爲每行返回true,從而啓用每行的打印。這與'awk'相同(for(i = 2; i <= NF; i + = 2){$ i =「」} print $ 0}'file> test'只會更加笨拙。 HTH。 – Steve