Faz loop através de um conjunto específico de diretórios

0

O código a seguir percorre todos os diretórios no caminho atual para executar uma contagem em arquivos xml compactados:

for i in *xml.gz; do 
    echo "XML" "${PWD##*/}" "$i" $(gunzip -c $i | echo "scale=0; 'wc -l'" | bc -l); 
done 

Estou procurando uma maneira de executar o loop nos últimos 5 diretórios para evitar a contagem de diretórios contados anteriormente (e reduzir o tempo de execução) O loop for permite especificar certos diretórios, mas ainda preciso apenas contar arquivos xml. Não é possível encontrar qualquer sintaxe para fazer as duas coisas.

    
por blom0344 24.03.2017 / 11:13

1 resposta

0

Quando você deseja listar os últimos N arquivos com base na hora em que você pode usar essa ideia:

ls -tr

para obter os arquivos mais recentes na parte inferior da listagem

tail -5

para obter as últimas 5 linhas. Então o código será algo como

for i in 'ls -tr|tail -5'.....
    
por 24.03.2017 / 13:31