2

私はこれらのファイルを持っています:

-rw-rw-r-- 1 root     boincadm 21170 Jul 19 16:42 wilson_job_79
-rw-rw-r-- 1 root     boincadm 18170 Jul 19 16:42 wilson_job_8
-rw-rw-r-- 1 root     boincadm 21288 Jul 19 16:42 wilson_job_80
-rw-rw-r-- 1 root     boincadm 21180 Jul 19 16:38 wilson_job_81
-rw-rw-r-- 1 root     boincadm 21156 Jul 19 16:36 wilson_job_82
-rw-rw-r-- 1 root     boincadm 21414 Jul 19 16:26 wilson_job_85
-rw-rw-r-- 1 root     boincadm 21194 Jul 19 16:29 wilson_job_86
-rw-rw-r-- 1 root     boincadm 21148 Jul 19 16:29 wilson_job_87
-rw-rw-r-- 1 root     boincadm 21176 Jul 19 16:27 wilson_job_88
-rw-rw-r-- 1 root     boincadm 21240 Jul 19 16:42 wilson_job_89
-rw-rw-r-- 1 root     boincadm 18136 Jul 19 16:26 wilson_job_9
-rw-rw-r-- 1 root     boincadm 21260 Jul 19 16:38 wilson_job_90
-rw-rw-r-- 1 root     boincadm 21174 Jul 19 16:34 wilson_job_91

私がリストするとき、私は番号順に答えが欲しいです:

-rw-rw-r-- 1 root     boincadm 18170 Jul 19 16:42 wilson_job_8
-rw-rw-r-- 1 root     boincadm 18136 Jul 19 16:26 wilson_job_9
-rw-rw-r-- 1 root     boincadm 21170 Jul 19 16:42 wilson_job_79
-rw-rw-r-- 1 root     boincadm 21288 Jul 19 16:42 wilson_job_80
-rw-rw-r-- 1 root     boincadm 21180 Jul 19 16:38 wilson_job_81
-rw-rw-r-- 1 root     boincadm 21156 Jul 19 16:36 wilson_job_82
-rw-rw-r-- 1 root     boincadm 21414 Jul 19 16:26 wilson_job_85
-rw-rw-r-- 1 root     boincadm 21194 Jul 19 16:29 wilson_job_86
-rw-rw-r-- 1 root     boincadm 21148 Jul 19 16:29 wilson_job_87
-rw-rw-r-- 1 root     boincadm 21176 Jul 19 16:27 wilson_job_88
-rw-rw-r-- 1 root     boincadm 21240 Jul 19 16:42 wilson_job_89
-rw-rw-r-- 1 root     boincadm 21260 Jul 19 16:38 wilson_job_90
-rw-rw-r-- 1 root     boincadm 21174 Jul 19 16:34 wilson_job_91

これどうやってするの?

4

5 に答える 5

3

アンダースコア文字「_」は、次の出力のファイル名にのみ表示されるという事実を利用してくださいls -l

ls -l | sort -t_ -k1,2 -k3n
于 2012-07-26T17:50:56.183 に答える
3

lsGNUツールをお持ちの場合は、それを処理しましょう。ls -vl

http://www.gnu.org/software/coreutils/manual/html_node/Details-about-version-sort.html

于 2012-07-26T21:49:30.040 に答える
1

これを試して:

ls | sort -V | xargs -i ls -ld {}

これにより、ls(ファイル名のリストを出力するだけ)が実行され、sort -V(「バージョン番号」ソートを実行)を介してパイプ処理され、各行がls -ld(各ファイルの詳細を出力する)に送信されます。

于 2012-07-26T17:49:21.077 に答える
1

sedを使用して、ファイル名の数字のみがソートフィールドにあると仮定します。

ls | sed 's/[^0-9]*\([0-9]*\)*/\1 &/' | sort -n -k1 | cut -d' ' -f2
  • ここでのsedコマンドは、ファイル番号だけで新しい列を作成します。たとえば、file23の場合、「23file23」と出力されます。

  • sortコマンドは数値的に(-n)最初のフィールド(またはキー、 -k1)でソートします

  • cutコマンドは最初のフィールドを削除し、2番目のフィールド(-f2)のみを出力します。たとえばfile23、入力から印刷されます23 file23

于 2012-07-26T18:00:55.580 に答える
0

9番目のフィールドでバージョンソートを使用します。

ls -l | sort -k9V
于 2012-07-26T18:11:12.313 に答える