Intervalos que começam com o primeiro campo
Vamos considerar este arquivo de teste:
$ cat input.csv
a,b,c,d,e,f,g,h,i,j
Com o GNU awk, pelo menos, podemos imprimir os primeiros cinco (ou outro número) de campos como este:
$ awk -F, '{NF=5; print}' OFS=, input.csv
a,b,c,d,e
Para aqueles que valorizam a concisão com mais clareza, poderíamos escrever de forma equivalente:
$ awk -F, '{NF=5;} 1' OFS=, input.csv
a,b,c,d,e
Redimensionamento dinâmico
Para deixar os dois últimos campos, independentemente de quantos campos precederem esses dois:
$ awk -F, '{NF-=2; print}' OFS=, input.csv
a,b,c,d,e,f,g,h
Outros intervalos
Para imprimir iniciando e parando com campos arbitrários, é necessário um loop:
$ awk -v first=3 -v last=6 -F, '{for (i=first;i<=last;i++) printf "%s%s",$i,(i==last?ORS:OFS)}' OFS=, input.csv
c,d,e,f
Para imprimir a partir do terceiro campo e sair dinamicamente dos dois últimos campos:
$ awk -v first=3 -F, '{last=NF-2; for (i=first;i<=last;i++) printf "%s%s",$i,(i==last?ORS:OFS)}' OFS=, input.csv
c,d,e,f,g,h