Localizar ausente entre 1000 arquivos numerados

0

Eu tenho uma pasta que deve conter 1000 arquivos, chamada out_x.dat , onde x é um número de 1 a 1000. Quando eu faço ls out_* | wc -l , vejo que há 996 arquivos. Eu gostaria de saber quais quatro estão faltando. Como posso conseguir isso? Eu posso listar os arquivos existentes com isso:

ls out* | awk -F '_' '{ print $2}' 

Existe algo que me permitirá listar os que não existem nos 1000 arquivos?

    
por sodiumnitrate 01.05.2016 / 03:21

1 resposta

4

Você pode usar um script simples para verificar a existência de cada um dos arquivos, por exemplo:

for (( i=1; i<=1000; ++i )); do [ -e out_$i.dat ] || echo out_$i.dat missing; done

Se o número for formatado, digamos, para 4 dígitos, a linha de comando pode ser elaborada para:

for (( i=1; i<=1000; ++i )); do printf -v n out_%04d.dat $i; [ -e $n ] || echo $n missing; done

Alternativamente (graças ao comentário de @ dave_thompson_085):

for i in {0001..1000}; do [ -e out_$i.dat ]  || echo out_$i.dat missing; done
    
por 02.05.2016 / 16:23

Tags