Excluindo Seleção de Coluna no AWK

Gostaria de excluir uma seleção de colunas de uma lista de arquivos CSV. A chamada awk está alinhada, pois é usada em um script de shell. Não sei quantas colunas os arquivos têm, apenas que as colunas que eu quero foram incluídas em cada arquivo da list

Digamos que eu quero as 4 primeiras colunas removidas. Apagar os valores da coluna deixará os separadores, que eu também quero que sejam removido

Embora o seguinte funcione: crie uma matriz de números de coluna para soltar e recrie a linha correspondente sem essas coluna

O valor do comprimento (linha) abaixo é o esperado, mas o loop final ainda itera sobre a contagem da coluna original, não o valor real do comprimento (linha

head $ f | awk 'BEGIN {FS = ","; divisão ("1,2,3,4", dropers, ",")} {split ($ 0, linha, FS); para (i em dropers) excluir linha [i] ; imprimir NF "," comprimento (linha) "<<<"; out = ""; print NF "," length (row) ">>>"; for (i = 1; i <= length (row); i ++) {print row [i] "lulu"; out = fora "," linha [i]}; sub (/ [\ t] * $ /, "", saída); imprima} '> $ g

ou formatado:

head $f | awk 'BEGIN{FS=",";split("1,2,3,4",dropers,",")}{split($0,row,FS);for(i in dropers) delete row[i]; print NF "," length(row) "<<<";out=""; print NF "," length(row) ">>>";for(i=1;i<=length(row);i++){print row[i] "lulu"; out = out "," row[i]}; sub(/[ \t]*$/,"",out);print out}'  > $g

Aqui está a saída para 2 arquivos: 6 colunas entrando, 2 restantes quando eu apaguei as colunas 1 a 4, mas o loop percorre as 6 colunas completas, em vez das 2 esperadas. Obrigado por qualquer conselho.

Aust.

6,2<<<
6,2>>>
lulu
lulu
lulu
lulu
0000009lulu
461474lulu
,,,,,0000009,461474
6,2<<<
6,2>>>
lulu
lulu
lulu
lulu
0000010lulu
94942lulu
,,,,,0000010,94942

Edita (Belisarius)
Código formatado a seguir:

BEGIN {FS=",";
       split("1,2,3,4",dropers,",")
      }

{ split($0,row,FS);
  for(i in dropers) delete row[i]; 
  print NF "," length(row) "<<<";
  out=""; 
  print NF "," length(row) ">>>";
  for(i=1;i<=length(row);i++){print row[i] "lulu"; 
                              out = out "," row[i]}; 
  sub(/[ \t]*$/,"",out);
  print out
}

questionAnswers(1)

yourAnswerToTheQuestion