Isso funciona. ^ denota início de linha, mais {32} que você já teve e, em seguida, $ no final da linha.
$ cat fileA fileB
12345678901234567890123456789012
123456789012345678901234567890123
12345678901234567890123456789012
123456789012345678901234567890124
$ grep -E "^.{32}$" fileA fileB
fileA:12345678901234567890123456789012
fileB:12345678901234567890123456789012
$
E, como apontado por @steeldriver, o posix grep inclui -x, então a seguinte abordagem também funciona: grep -xE ".{32}" fileA fileB