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.