중간 섹션을 기준으로 파일 정렬

중간 섹션을 기준으로 파일 정렬

유닉스에 다음 파일이 있고 파일 이름의 날짜와 시간을 기준으로 파일을 정렬하고 싶습니다.

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 -kand 를 사용해 보았지만 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

관련 정보