次のファイル名のリストがあります。
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
- 2番目の列の最初の種類
-k3
- 次に、3番目の列を並べ替えます。
-g
- 一般的な数値ソート
答え4
sort -V
-V, --version ソート テキスト内の(バージョン)番号の自然な順序