以下代码循环遍历当前路径下的所有目录以对压缩的 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`.....