首页 > 解决方案 > 使用 bash 在图形模式下对文件进行排序

问题描述

早上好。

我有以下文件列表:

3,09AgSec02_00 Aqui llega el 3-09.jpg
3,09AgSec02_00.jpg
3,09AgSec02_01.jpg
3,09AgSec02_02.jpg
3,09AgSec02_03.jpg
3,09AgSec02_04.jpg
3,09AgSec02_05.jpg
3,09AgSec02_06.jpg
3,09AgSec02_07.jpg
3,09AgSec02_08.jpg
3,09AgSec02_09.jpg
3,09AgSec02_0010.jpg
3,09AgSec02_11.jpg
3,09AgSec02_12.jpg
3,09AgSec02_13.jpg
3,09AgSec02_14.jpg
3,09AgSec02_15.jpg

在图形模式下,我看到它很好,但如果我执行 ls,我会看到如下

ls -A

3,09AgSec02_00 Aqui llega el 3-09.jpg
3,09AgSec02_00.jpg
**3,09AgSec02_0010.jpg**
3,09AgSec02_01.jpg
3,09AgSec02_02.jpg
3,09AgSec02_03.jpg
3,09AgSec02_04.jpg
3,09AgSec02_05.jpg
3,09AgSec02_06.jpg
3,09AgSec02_07.jpg
3,09AgSec02_08.jpg
3,09AgSec02_09.jpg
3,09AgSec02_11.jpg
3,09AgSec02_12.jpg
3,09AgSec02_13.jpg
3,09AgSec02_14.jpg
3,09AgSec02_15.jpg

并且放置好(即使我有00)我使用以下表格

ls -1v 

3,09AgSec02_00.jpg
**'3,09AgSec02_00 Aqui llega el 3-09.jpg'**
3,09AgSec02_01.jpg
3,09AgSec02_02.jpg
3,09AgSec02_03.jpg
3,09AgSec02_04.jpg
3,09AgSec02_05.jpg
3,09AgSec02_06.jpg
3,09AgSec02_07.jpg
3,09AgSec02_08.jpg
3,09AgSec02_09.jpg
*3,09AgSec02_0010.jpg*
3,09AgSec02_11.jpg
3,09AgSec02_12.jpg
3,09AgSec02_13.jpg
3,09AgSec02_14.jpg
3,09AgSec02_15.jpg

所有数字都正确排序,但其中一个给了我一个错误。'3,09AgSec02_00 Aqui llega el 3-09.jpg'

因为在 00 和“00 space [Az]”之后它显示在底部。

可以保留如下吗?在图形模式下会是什么样子

'3,09AgSec02_00 Aqui llega el 3-09.jpg'
3,09AgSec02_00.jpg
3,09AgSec02_01.jpg
3,09AgSec02_02.jpg
3,09AgSec02_03.jpg
3,09AgSec02_04.jpg
3,09AgSec02_05.jpg
3,09AgSec02_06.jpg
3,09AgSec02_07.jpg
3,09AgSec02_08.jpg
3,09AgSec02_09.jpg
3,09AgSec02_0010.jpg
3,09AgSec02_11.jpg
3,09AgSec02_12.jpg
3,09AgSec02_13.jpg
3,09AgSec02_14.jpg
3,09AgSec02_15.jpg

标签: bashsortinguser-interfaceterminalls

解决方案


您可以通过在同一文件列表上使用( ) 或( ) 将其传递到sort命令(或保存 +cat到)来实现结果。它会输出这个:sortsort -msort --mergesort -zsort --zero-terminated

3,09AgSec02_00 Aqui llega el 3-09.jpg
3,09AgSec02_00.jpg
3,09AgSec02_01.jpg
3,09AgSec02_02.jpg
3,09AgSec02_03.jpg
3,09AgSec02_04.jpg
3,09AgSec02_05.jpg
3,09AgSec02_06.jpg
3,09AgSec02_07.jpg
3,09AgSec02_08.jpg
3,09AgSec02_09.jpg
3,09AgSec02_0010.jpg
3,09AgSec02_11.jpg
3,09AgSec02_12.jpg
3,09AgSec02_13.jpg
3,09AgSec02_14.jpg
3,09AgSec02_15.jpg

您的输入(作为base64):

echo MywwOUFnU2VjMDJfMDAgQXF1aSBsbGVnYSBlbCAzLTA5LmpwZwozLDA5QWdTZWMwMl8wMC5qcGcKMywwOUFnU2VjMDJfMDEuanBnCjMsMDlBZ1NlYzAyXzAyLmpwZwozLDA5QWdTZWMwMl8wMy5qcGcKMywwOUFnU2VjMDJfMDQuanBnCjMsMDlBZ1NlYzAyXzA1LmpwZwozLDA5QWdTZWMwMl8wNi5qcGcKMywwOUFnU2VjMDJfMDcuanBnCjMsMDlBZ1NlYzAyXzA4LmpwZwozLDA5QWdTZWMwMl8wOS5qcGcKMywwOUFnU2VjMDJfMDAxMC5qcGcKMywwOUFnU2VjMDJfMTEuanBnCjMsMDlBZ1NlYzAyXzEyLmpwZwozLDA5QWdTZWMwMl8xMy5qcGcKMywwOUFnU2VjMDJfMTQuanBnCjMsMDlBZ1NlYzAyXzE1LmpwZwo= |base64 -d | sort -z

在在线 bash shell中尝试过。


推荐阅读