cols=$( awk '{print NF; exit}' foo); cat foo | datamash -t\ sum 1-$cols
ou
cat foo | datamash -t\ sum 1-$( awk '{print NF; exit}' foo)
datamash
tem um recurso para especificar intervalos de coluna, portanto, calcule o número de colunas e use esse resultado como parte da especificação do intervalo. Na minha solução de exemplo, usei awk
para verificar apenas a primeira linha do arquivo e sair, mas você pode usar qualquer outra coisa que lhe agrade. datamash
tem uma função -check
cuja saída inclui o número de colunas, mas em um formato que ainda precisa ser analisado para o número específico que é de seu interesse.