我有这些文件:
-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
我该怎么做?
答案 0 :(得分:2)
利用下划线字符“_”仅出现在ls -l
输出中的文件名中这一事实:
ls -l | sort -t_ -k1,2 -k3n
答案 1 :(得分:2)
如果你有GNU工具,请ls
处理它:ls -vl
http://www.gnu.org/software/coreutils/manual/html_node/Details-about-version-sort.html
答案 2 :(得分:1)
试试这个:
ls | sort -V | xargs -i ls -ld {}
这运行ls(只输出文件名列表),通过sort -V(它执行“版本号”排序)管理它,然后将每行发送到ls -ld(输出每个文件的详细信息)
答案 3 :(得分:1)
使用sed,假设文件名中只有数字位于排序字段中:
ls | sed 's/[^0-9]*\([0-9]*\)*/\1 &/' | sort -n -k1 | cut -d' ' -f2
这里的sed
命令只用文件创建一个新列
例如,对于file23,它将打印出“23 file23”。
sort
命令数字(-n
)按第一个字段(或键,
-k1
)
cut
命令删除第一个字段,仅打印第二个字段
字段(-f2
)。例如,它会从输入file23
打印23
file23
。
答案 4 :(得分:0)
在第9个字段使用版本排序:
ls -l | sort -k9V