2013-03-30 138 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