다음과 같은 파일 이름 목록이 있습니다.
epdb_0_0.pdb
epdb_0_10.pdb
epdb_0_11.pdb
epdb_0_12.pdb
epdb_0_13.pdb
epdb_0_14.pdb
epdb_0_15.pdb
epdb_0_16.pdb
epdb_0_17.pdb
epdb_0_18.pdb
epdb_0_19.pdb
epdb_0_1.pdb
epdb_0_20.pdb
epdb_0_21.pdb
epdb_0_22.pdb
epdb_0_23.pdb
epdb_0_24.pdb
epdb_0_25.pdb
epdb_0_26.pdb
epdb_0_27.pdb
epdb_0_28.pdb
epdb_0_29.pdb
epdb_0_2.pdb
epdb_0_30.pdb
...
Unix sort 명령을 사용하여 목록을 다음과 같이 만드는 방법:
epdb_0_0.pdb
epdb_0_1.pdb
epdb_0_2.pdb
...
epdb_0_10.pdb
epdb_0_11.pdb
epdb_0_12.pdb
epdb_0_13.pdb
epdb_0_14.pdb
epdb_0_15.pdb
epdb_0_16.pdb
epdb_0_17.pdb
...
epdb_1_0.pdb
epdb_1_2.pdb
epdb_1_3.pdb
...
나는 이것을 --key= flag
조합하여 사용하는 것을 알고 있지만 iwht -n or -g
작동시킬 수는 없습니다.
답변1
특정 방식으로 파일 이름 목록을 정렬하는 대신 다음 명령을 사용할 수 있습니다.
ls -1v *.pdb
원하는 순서대로 파일을 나열하는 것부터 시작하세요.
답변2
다음을 수행할 수 있습니다.
$ cat file.txt | sort -t"_" | sort -n -k3 -t"_"
- file.txt에는 정렬되지 않은 첫 번째 목록이 포함되어 있습니다.
건배.
답변3
노력하다:
sort -t "_" -k2 -k3 -g <filename>
-t "_"
- 필드 구분 기호는 다음과 같습니다._
-k2
- 두 번째 열의 첫 번째 종류
-k3
- 그런 다음 세 번째 열을 정렬합니다.
-g
- 일반 수치 정렬
답변4
sort -V
-V, --version 정렬 텍스트에서 (버전) 번호의 자연스러운 순서