如何用AWK选择一些列?

mah*_*ood 6 linux awk

我想在文件中选择一些列并在其上运行一些命令.所以我的剧本就是这个

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

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

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

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

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

jay*_*ngh 4

根据Glennjackman 的建议更新:

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