Перебрать определенный набор каталогов

Следующий код проходит через ВСЕ каталоги по текущему пути для подсчета сжатых файлов xml:

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

Я ищу способ выполнить цикл, скажем, на последних 5 каталогах, чтобы предотвратить подсчет ранее подсчитанных каталогов (и сократить время выполнения). Цикл for позволяет указать определенные каталоги, но мне все равно нужно подсчитывать только xml-файлы. Не могу найти синтаксиса, чтобы сделать и то, и другое.

0
24.03.2017, 13:48
1 ответ

Если вы хотите перечислить последние N файлов в зависимости от времени, вы можете использовать эту идею:

ls -tr

, чтобы получить самые новые файлы внизу списка

tail -5

, чтобы получить последние 5 строк. Таким образом, код будет примерно таким:

for i in `ls -tr|tail -5`.....
0
28.01.2020, 04:47

Теги

Похожие вопросы