안녕하세요. 파일의 최대 개수(최신 버전)를 얻으려고 합니다.
디렉토리에 여러 개의 파일이 있는데 tar.gz
일부 소프트웨어의 버전 형식은 입니다 v${version_number}_software.tar.gz
. 여기서 ${version_number}
은 세 자리 숫자입니다.
실행하면 ls *.tar.gz | cut -c 2-4
다음과 같은 결과가 나타납니다.
100
102
684
696
705
가장 높은 값(이 경우 705
)을 얻으려면 다음에 무엇을 실행해야 합니까(또는 ls 또는 cut 구문에서 무엇을 변경해야 합니까)?
몇 가지를 시도했지만 제 능력 grep
으로 는 awk
조금 sed
부족합니다. 어떤 단서도 주시면 감사하겠습니다!
답변1
맙소사, 가장 높은 값이 항상 마지막 줄에 나타나는 것을 발견했을 수도 있습니다. :-)
그래서:
ls -d -- *.tar.gz | cut -c 2-4 | tail -n 1
이것은. 이 질문은 미래 세대에게 남겨주세요
편집: 그러나 Lambert가 아래에서 제안한 것처럼,
ls -d -- *.tar.gz | cut -c 2-4 |sort -n|tail -n 1
출력이 숫자로 정렬되도록 하는 것이 가장 좋습니다 (그렇지 않으면 ls
정렬 순서가 대/소문자를 구분하는 로케일에서 V999.tar.gz
출력이 먼저 나올 수 있음 ). v100.tar.gz
안타깝게도 그는 답변으로 게시하지 않았습니다.