Eu criei esses arquivos para replicar uma escala menor do que você está fazendo:
┌─[root@Fedora]─[~/stack_exchange]─[03:38 pm]
└─[$]› ls
1234fnjfck CA123456789 EA123456789 HA123456789 KA123456789 NA123456789 QA123456789 TA123456789 VA123456789 YA123456789
AA123456789 DA123456789 FA123456789 IA123456789 LA123456789 OA123456789 RA123456789 testing-please-delete-me WA123456789 ZA123456789
BA123456789 DELETE1234 GA123456789 JA123456789 MA123456789 PA123456789 SA123456789 UA123456789 XA123456789
uma variável regex correspondente ao padrão será capaz de manipular os arquivos desejados que não correspondem ao padrão em um loop for in, com uma instrução if:
┌─[root@Fedora]─[~/stack_exchange]─[04:07 pm]
└─[$]› pattern="^[A-Z][A-Z][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]$"
[$]› for i in $(ls ~/stack_exchange); do if ! [[ $i =~ $pattern ]]; then echo "$i does not match!"; fi; done
1234fnjfck does not match!
DELETE1234 does not match!
testing-please-delete-me does not match!
Então, para excluí-los:
[$]› for i in $(ls ~/stack_exchange); do if ! [[ $i =~ $pattern ]]; then rm -f $i; fi; done
resultado:
[$]› ls
AA123456789 CA123456789 EA123456789 GA123456789 IA123456789 KA123456789 MA123456789 OA123456789 QA123456789 SA123456789 UA123456789 WA123456789 YA123456789
BA123456789 DA123456789 FA123456789 HA123456789 JA123456789 LA123456789 NA123456789 PA123456789 RA123456789 TA123456789 VA123456789 XA123456789 ZA123456789