다음 코드는 현재 경로 아래의 모든 디렉터리를 반복하여 압축된 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`.....