쉘 스크립트를 사용하여 다음 파일 이름을 어떻게 정렬할 수 있습니까? [폐쇄]

쉘 스크립트를 사용하여 다음 파일 이름을 어떻게 정렬할 수 있습니까? [폐쇄]

쉘 스크립트를 사용하여 다음 파일 이름을 어떻게 정렬할 수 있습니까?

abcd_exp_4_20180706.txt
abcd_exp_3_20180706.txt
abcd_exp_1_20180706.txt
abcd_exp_2_20180706.txt
abcd_exp_5_20180706.txt
abcd_exp_1_20180707.txt
abcd_exp_5_20180707.txt
abcd_exp_4_20180707.txt
abcd_exp_3_20180707.txt
abcd_exp_2_20180707.txt

예상 출력

abcd_exp_1_20180706.txt
abcd_exp_2_20180706.txt
abcd_exp_3_20180706.txt
abcd_exp_4_20180706.txt
abcd_exp_5_20180706.txt
abcd_exp_1_20180707.txt
abcd_exp_2_20180707.txt
abcd_exp_3_20180707.txt
abcd_exp_4_20180707.txt
abcd_exp_5_20180707.txt

답변1

일반적으로 구문 분석의 결과 는 다음 ls과 같습니다.나쁜 생각. 그러나 모든 파일 이름이 동일한 형식을 따른다는 것을 알고 있는 경우 이는 합리적인 접근 방식입니다.

$ ls | sort -t_ -k4 -k3,3

설명하다

  • ls |: ls의 출력을 파이프로 연결합니다...
  • sort -t_ -k4 -k3: 먼저 네 번째 열(예 : )을 기준으로 정렬한 다음 세 번째 열(예: ) _을 기준으로 정렬하는 구분 기호 로 사용됩니다.20180706.txt1

관련 정보