#TIL #bash 파일 이름과 디렉터리 이름 중 가장 높은 버전을 구하는 법

$ ls | sort --version-sort --reverse | grep -Po [0-9]+\\.[0-9]+\\.[0-9]+ | head -n 1

이렇게 입력하면 파일 이름이나 디렉터리 이름 중 가장 높은 버전을 출력한다.

sort 프로그램의 --version-sort 옵션을 사용하면 알파벳순 정렬이 아니라 버전 정렬을 사용한다. 예를 들면 1, 120, 2, … 순서로 정렬하는 게 아니라 1, 2, 3, 120, … 순서로 정렬한다. grep 프로그램의 -Po 옵션을 사용해서 + 매칭 조건을 쓸 수 있게 하고 일치하는 부분만 출력한다. 즉 0.0.1a가 있으면 0.0.1만 출력한다.

참고

Feedback plz <3 @ohyecloudy, ohyecloudy@gmail.com

A Random Post