유닉스에 다음 파일이 있고 파일 이름의 날짜와 시간을 기준으로 파일을 정렬하고 싶습니다.
ABC_XYZ.20170201.223147. txt ABC_XYZ.20170201.223146. txt ABC_XYZ.20170127.223141. txt ABC_XYZ.20170125.223139. txt ABC_XYZ.20170214.223134. txt
나는 다음과 같은 결과를 기대하고 있습니다
ABC_XYZ.20170125.223139. txt ABC_XYZ.20170127.223141. txt ABC_XYZ.20170201.223146. txt ABC_XYZ.20170201.223147. txt ABC_XYZ.20170214.223134. txt
나는 sort -k
and 를 사용해 보았지만 sort -n
어쩌면 올바른 방식으로 사용하고 있지 않을 수도 있습니다.
답변1
현재 폴더의 모든 파일이 설명된 형식과 동일한 경우 다음 명령을 사용할 수 있습니다.
ls | sort -t . -k 2
이 -t
스위치는 구분 기호를 a로 설정합니다. .
이 -k
스위치는 정렬에 사용할 키를 나타냅니다.
-n
제공한 파일 이름 형식을 사용하면 각 파일 이름의 비트 수가 동일하므로 스위치가 필요하지 않습니다 . 항상 그렇지 않은 경우 -n
스위치를 쉽게 추가할 수도 있습니다.
ls | sort -n -t . -k 2
마찬가지로, 파일 이름의 각 부분의 숫자 길이가 다른 경우 두 키를 모두 지정하고 확장 범위를 지정해야 할 수도 있습니다.
ls | sort -n -t . -k 2,2 -k 3,3