Uma maneira é usar uma combinação de seq
, sort
e uniq
:
# Get a list of all the files in DirA
cd DirA
ls . > files.txt
# Get a list of all expected files
seq -f "A_%06.0f.txt" 0 999999 > expected.txt
# Find unique entries
sort files.txt expected.txt | uniq -u
Você pode ter que ajustar os argumentos para seq
para corresponder aos nomes dos seus arquivos.
Quando isso estiver funcionando, você poderá tentar fazer isso sem usar arquivos temporários:
cd DirA
sort <(ls .) <(seq -f "A_%06.0f.txt" 0 999) | uniq -u
Então, quando você estiver pronto para pesquisar em todos os seus diretórios:
for d in ./*/; do
pushd "$d"
sort <(ls .) <(seq -f "A_%06.0f.txt" 0 999) | uniq -u
popd
done
Você deve obter uma saída semelhante a essa, que lista cada diretório e cada arquivo ausente nesse diretório:
./DirA/
A_000371.txt
./DirB/
A_000881.txt
./DirC/
A_000101.txt
A_000191.txt