/var/log/myfiles/
로그 파일을 디렉토리 에 저장하는 프로그램이 있습니다 . 이러한 파일의 크기는 작게 유지되며 파일 이름은 숫자만큼 증가합니다. 결국 보고서에 마지막 파일을 추가하고 싶습니다. 나는 이것을하면서 공백을 그렸습니다. 파일을 찾을 수 있지만 스크립트에서는 작동하지 않습니다.
/var/log/myfile/master
/var/log/myfile/master.1
/var/log/myfile/master.2
/var/log/myfile/master.3
답변1
원하는 파일("마지막 파일")이 숫자 확장자가 가장 높은 파일이라고 가정하면 다음을 사용할 수 있습니다.zsh의 강력한 와일드카드 기능:
zsh -c 'cat /var/log/master.*(oe['REPLY=${REPLY##*.}']n[-1]) > report'
와일드카드/전역 확장은 다음과 같습니다.
/var/log/master.*
-- 다음으로 시작하는 파일과 일치합니다./var/log/master.
( ... )
-- "전역 한정자"를 정의합니다.o
-- 결과 정렬e['REPLY=${REPLY##*.}']
/var/log/myfile/master.3
-- 정렬 할 결과는 첫 번째 마침표의 선행 텍스트를 제거하여 제공됩니다.3
n
-- 결과를 알파벳순이 아닌 숫자순으로 정렬합니다.[-1]
--결과를 정렬한 후 마지막 요소(가장 큰 요소)만 꺼냅니다.
답변2
문제가 해결되었습니다. 날짜와 시간 스탬프를 포함하도록 파일 이름을 변경했습니다. 필요한 데이터를 더 쉽게 식별하고 추출할 수 있습니다.
Master-20-Jan-2019-18:20.log
Master-20-Jan-2019-18:45.log
Master-20-Jan-2019-19:18.log