xargs 및 gunzip을 사용하여 정렬 순서를 유지하는 방법

xargs 및 gunzip을 사용하여 정렬 순서를 유지하는 방법

다음을 사용하여 프로세스를 처음 테스트했을 때 일부 파일의 내용을 알파벳순(이 경우 날짜 및 반복을 의미함) 순서로 추출하려고 합니다 ls.

$ find /opt/minecraft/wonders/logs/ -name 20* -type f -mtime -3 -print0 \
   | sort | xargs -r0 ls -l | awk -F' ' '{print $6 " " $7 " " $9}'

나는 긍정적인 결과를 얻었습니다:

Aug 18 /opt/minecraft/wonders/logs/2018-08-17-3.log.gz
Aug 18 /opt/minecraft/wonders/logs/2018-08-18-1.log.gz
Aug 19 /opt/minecraft/wonders/logs/2018-08-18-2.log.gz
Aug 19 /opt/minecraft/wonders/logs/2018-08-19-1.log.gz
Aug 20 /opt/minecraft/wonders/logs/2018-08-19-2.log.gz
Aug 20 /opt/minecraft/wonders/logs/2018-08-20-1.log.gz

그러나 실제로 파일을 추출하면 정렬 순서가 손실됩니다.

$ find /opt/minecraft/wonders/logs/ -name 20* -type f -mtime -3 -print0 \
   | sort | xargs -r0 gunzip -vc | grep "\/opt.*"`

/opt/minecraft/wonders/logs/2018-08-18-1.log.gz:     66.8%
/opt/minecraft/wonders/logs/2018-08-18-2.log.gz:     83.1%
/opt/minecraft/wonders/logs/2018-08-19-1.log.gz:     70.3%
/opt/minecraft/wonders/logs/2018-08-19-2.log.gz:     72.9%
/opt/minecraft/wonders/logs/2018-08-20-1.log.gz:     73.3%
/opt/minecraft/wonders/logs/2018-08-17-3.log.gz:     90.2%

이러한 파일의 압축을 풀 때 정렬 순서를 어떻게 유지할 수 있나요?

답변1

-print0with find-0with options 를 사용했지만 for xargs사용을 잊어버렸으므로 기본적 으로 줄이 표시됩니다(파일 이름에 포함되어 있지 않은 경우 ). 표시되는 출력은 일부 정렬을 수행하는 중일 수 있습니다.-zsortsort\nlsls

find /opt/minecraft/wonders/logs/ -name '20*' -type f -mtime -3 -print0 |
  sort -z | xargs -r0 gunzip -vc | grep /opt

(참고: 20*glob이며 셸에 대해 인용되어야 하므로 문자 그대로 Wire 에 전달 find됩니다 .)/grep.*

관련 정보