Faça simplesmente:
awk 'NF != 31 || /[^0-9 -]/ {print FILENAME ":" FNR ": " $0}' file1 file2...
Para relatar as linhas que não possuem 31 campos ou não têm dígitos. Não tão estrito quanto a solução do @ manatwork, já que ele não iria latir em ---
ou 9-8
, por exemplo, mas pode ser mais eficiente.