zsh는 번호가 매겨진 로그 파일을 역순으로 가져옵니다.

zsh는 번호가 매겨진 로그 파일을 역순으로 가져옵니다.

x.log파일이 임계값 크기에 도달할 때까지 가장 최근 쿼리가 포함되도록 번호가 매겨진 롤링 로그 파일이 있습니다. 그런 x.log.1다음 이름이 바뀌고 x.log새 작업이 시작됩니다.

나는 일부 정보를 추출하기 위해 이러한 파일을 시간순으로 살펴보는 기본 파서를 작성하고 있습니다. 이는 파일을 역순으로 읽어야 함을 의미합니다. 따라서 파일부터 시작하여 x.log.10한 줄씩 처리하는 방식 으로 최신 로그 항목이 있는 파일을 x.log.9처리하게 됩니다 .x.log

이 목적을 위한 작은 Python 스크립트가 있습니다. zsh CLI에서 명령을 호출하는 방법을 알고 싶습니다. 중괄호 확장을 사용할 수 있다는 것을 알고 있지만 x.log.{10..1}당연히 최신 파일은 포함되지 않습니다.x.log

어떤 아이디어가 있나요?

답변1

Zsh는글로벌 예선정렬 순서를 수정하는 데 사용할 수 있습니다. 예를 들어 다음을 사용할 수 있습니다.

 print -rl x.log*(nOn)

문서 인쇄N숫자 전역 플래그 활성화( n),산소구독자N나( On). 이것은 x.log내 로케일 끝에 숫자가 아닌 문자를 넣는 것 같습니다 .

또는 이름의 숫자 순서에 의존하는 대신 파일의 실제 이름을 사용하십시오.수정 횟수:

print -rl x.log*(Om)

N(null glob) 한정자를 추가할 수도 있습니다. man zshexpn자세히보다.

관련 정보