什么是做这样的事情awk的动态字段列表打印
awk '{ print $1, $3, $5 }'
但在一个动态的方式最好?
这种情况是,只有在运行时才知道打印的最后一个字段。 所以它可能是$ 30,$ 90,$ 5,它也可能是$ 30,$ 90,$ 5,$ 7,$ 9或更
我的第一个试验是这样的:
awk -v MAX=7 '{for (i = 2; i < MAX; i+=2) {print i,$i} }'
,但其打印在一个领域行:中
a[2]
a[4]
a[6]
代替
a[2] a[4] a[6]
有没有更好的方式来实现这一目标?
感谢您的所有建议。 :)
一个后续问题。 在运行时,我已经有了可用的序列,比如MyArray =(2 4 6 8) 有没有办法将这个数组“传”到awk中并要求awk打印$ 2 $ 4 $ 6 $ 8? 这样我还能再救一个for循环中的awk
你应该避免编辑的问题,他们已经回答后,特别是增加新的或不同的要求。这使得它成为一个*不同的问题,所以只要问一个新问题。如果您觉得这很重要,请参考新问题中的原始问题。原因是:当答案与问题无关时,对于未来的读者来说是令人困惑的。 – rici
感谢您的提示。将不会再这样做。 – Solti