Usando globs estendidos:
shopt -s extglob
printf '%s\n' !([[:digit:][:upper:]]?([[:digit:][:upper:]])_[[:digit:]][[:digit:]][[:digit:]][[:digit:]]_+([[:alnum:]]).dat)
isso imprimirá todos os nomes de arquivos / diretórios que não corresponderem ( ! ) [[:digit:][:upper:]] seguido por zero ou um [[:digit:][:upper:]] seguido por 4 [[:digit:]] entre _ s e, em seguida, um ou mais [[:alnum:]] antes da extensão .dat .
Se você quiser pesquisar recursivamente:
shopt -s globstar
shopt -s extglob
printf '%s\n' **/!([[:digit:][:upper:]]?([[:digit:][:upper:]])_[[:digit:]][[:digit:]][[:digit:]][[:digit:]]_+([[:alnum:]]).dat)
Como alternativa, com gnu find (você pode usar um regex):
find . -regextype egrep ! -regex '.*/[[:digit:][:upper:]]{1,2}_[[:digit:]]{4}_[[:alnum:]]+\.dat$'