如何用AWKselect一些列?

我想select一个文件中的一些列,并运行一些命令。 所以我的脚本是这样的

awk '{print $1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14,$15,$19}' test.txt > outpot.txt 

但是这打印到另一个文件,我试图做到这一点

 awk '{print $1,$2,$3,$4,$5,$6,$7,$9,$10,$11,$12,$13,$14,$15,$16}' test.txt | next commands 

(这个命令工作正常!我做了一个错误,我不知道如何删除这个问题)

是否有可能使这个命令更短,而不是写所有列只是写$1-7 && $9-15 && $19 (但这不是真的很重要,我只是想知道是否有可能)。 主要的是能够select那些列

根据glennjackman的建议更新:

 awk '{for (i=1;i<=NF;i++) if ((1<=i && i<=7) || (9<=i && i<=15) || i==19) printf("%s ", $i); print ""}' file 

要回答你的问题的一部分,在awk脚本中,你可以这样做:

 { for (i=1; i<=7; i++) print $i; for (i=9; i<=15; i++) print $i; print $19; }