循环遍历特定的目录集

循环遍历特定的目录集

以下代码循环遍历当前路径下的所有目录以对压缩的 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 文件进行计数。找不到任何语法来同时执行这两项操作。

答案1

当你想根据时间列出最后 N 个文件时,你可以使用这个想法:

ls -tr

在列表底部获取最新文件

tail -5

获取最后 5 行。所以代码会是这样的

for i in `ls -tr|tail -5`.....

相关内容