是否可以在 titlepage_19.pdf 之前查看按 titlepage_1.pdf 排序的输出?
$ ls
allTitlepage.pdf titlepage_12.pdf titlepage_19.tex titlepage_26.pdf titlepage_32.tex titlepage_4.tex
allTitlepage.tex titlepage_12.tex titlepage_1.pdf titlepage_26.tex titlepage_33.pdf titlepage_5.pdf
assignment.pdf titlepage_13.pdf titlepage_1.tex titlepage_27.pdf titlepage_34.pdf titlepage_5.tex
assignment.tex titlepage_13.tex titlepage_20.pdf titlepage_27.tex titlepage_34.tex titlepage_6.pdf
graphicsAssignment2.pdf titlepage_14.pdf titlepage_20.tex titlepage_28.pdf titlepage_35.pdf titlepage_6.tex
graphicsAssignment2.tex titlepage_14.tex titlepage_21.pdf titlepage_28.tex titlepage_35.tex titlepage_7.pdf
README.md titlepage_15.pdf titlepage_21.tex titlepage_29.pdf titlepage_36.pdf titlepage_7.tex
thesisTitlepage.pdf titlepage_15.tex titlepage_22.pdf titlepage_29.tex titlepage_36.tex titlepage_8.pdf
thesisTitlepage.tex titlepage_16.pdf titlepage_22.tex titlepage_2.pdf titlepage_37.pdf titlepage_8.tex
titlepage_0.pdf titlepage_16.tex titlepage_23.pdf titlepage_2.tex titlepage_37.tex titlepage_9.pdf
titlepage_0.tex titlepage_17.pdf titlepage_23.tex titlepage_30.pdf titlepage_38.pdf titlepage_9.tex
titlepage_10.pdf titlepage_17.tex titlepage_24.pdf titlepage_30.tex titlepage_38.tex titlepage_one.pdf
titlepage_10.tex titlepage_18.pdf titlepage_24.tex titlepage_31.pdf titlepage_3.pdf titlepage_one.tex
titlepage_11.pdf titlepage_18.tex titlepage_25.pdf titlepage_31.tex titlepage_3.tex titlepage_two.tex
titlepage_11.tex titlepage_19.pdf titlepage_25.tex titlepage_32.pdf titlepage_4.pdf
使用开关 -v [文本中自然排序的(版本)数字]
如果你想要单列使用
输出已排序。根据
ls
手册页:但如果你想走得更远,你至少有两个选择:
选项 1 -
ls
排序开关man ls
告诉您一些可用于排序的开关,特别是ls 手册页说:在您的情况下,您需要“版本”排序(-v)。 不过要小心,因为这也会对任何
blahblah-X.Y.Z-A
可能不完全符合您要求的安排进行排序。另请参阅GNU 对版本排序的解释。选项 2 - 用于排序命令的管道
您可以使用管道
|
将输出发送到另一个命令,例如,您可以使用该命令sort
以多种其他方式进行排序,ls -1 | sort -n
如果您有编号的文件,这很有用。该-1
开关确保输出是每个文件一行。同样,您可以使用类似的东西来操纵输出以帮助排序
sed
或awk
。有很多方法可以回答这类*问题。您可能会发现 linux shell 教程很有帮助。
*(看看我在那里做了什么?:-p)
正如评论中已经指出的那样,输出已经排序,但是按字符而不是数字排序。您可能希望通过管道输出
ls
其sort
具有按字符串中的数字排序的开关:从手册页:
缺点:当我们发布时,它会在一个表格
ls
中输出文件,其中包含当前屏幕上的尽可能多的列(就像您在帖子中显示的那样)。但是当注意到它的输出被重定向到一个文件或一个管道(如 中)时,然后只在一个列中打印文件,因为它假设输出是逐行处理的(也就是逐个文件)由其他一些程序(如)。因此, 的输出将在一列中,而不是在具有多列的表中。有关如何避免这种情况,请参阅@vijay的简单但完美的答案。ls
ls | sort
ls
sort
ls | sort -V
ls -l
: 垂直列出目录的文件,但不按特定顺序。ls -l | sort -k 3
:-k 3
将按第 3 列对上一个命令的输出进行排序。请试试这个。
样本输出