AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / ubuntu / 问题 / 1081689
Accepted
alhelal
alhelal
Asked: 2018-10-08 05:06:23 +0800 CST2018-10-08 05:06:23 +0800 CST 2018-10-08 05:06:23 +0800 CST

如何对`ls`的输出进行排序?

  • 772

是否可以在 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
command-line ls
  • 5 5 个回答
  • 4643 Views

5 个回答

  • Voted
  1. Best Answer
    Vijay
    2018-10-08T05:23:54+08:002018-10-08T05:23:54+08:00

    使用开关 -v [文本中自然排序的(版本)数字]

    ls -v
    

    如果你想要单列使用

    ls -1v
    
    • 32
  2. tudor -Reinstate Monica-
    2018-10-08T05:22:59+08:002018-10-08T05:22:59+08:00

    输出已排序。根据ls手册页:

    如果未指定 -cftuvSUX 或 --sort ,则按字母顺序对条目进行排序。

    但如果你想走得更远,你至少有两个选择:

    选项 1 -ls排序开关

    man ls告诉您一些可用于排序的开关,特别是ls 手册页说:

    无 (-U)、大小 (-S)、时间 (-t)、版本 (-v)、扩展名 (-X)

    在您的情况下,您需要“版本”排序(-v)。 不过要小心,因为这也会对任何blahblah-X.Y.Z-A可能不完全符合您要求的安排进行排序。另请参阅GNU 对版本排序的解释。

    选项 2 - 用于排序命令的管道

    您可以使用管道|将输出发送到另一个命令,例如,您可以使用该命令 sort以多种其他方式进行排序,ls -1 | sort -n如果您有编号的文件,这很有用。该-1开关确保输出是每个文件一行。

    同样,您可以使用类似的东西来操纵输出以帮助排序sed或awk。

    有很多方法可以回答这类*问题。您可能会发现 linux shell 教程很有帮助。

    *(看看我在那里做了什么?:-p)

    • 14
  3. PerlDuck
    2018-10-08T05:27:13+08:002018-10-08T05:27:13+08:00

    正如评论中已经指出的那样,输出已经排序,但是按字符而不是数字排序。您可能希望通过管道输出ls其sort具有按字符串中的数字排序的开关:

    ls | sort --version-sort
    

    从手册页:

    -V, --version-sort
             natural sort of (version) numbers within text
    

    缺点:当我们发布时,它会在一个表格ls中输出文件,其中包含当前屏幕上的尽可能多的列(就像您在帖子中显示的那样)。但是当注意到它的输出被重定向到一个文件或一个管道(如 中)时,然后只在一个列中打印文件,因为它假设输出是逐行处理的(也就是逐个文件)由其他一些程序(如)。因此, 的输出将在一列中,而不是在具有多列的表中。有关如何避免这种情况,请参阅@vijay的简单但完美的答案。lsls | sortlssortls | sort -V

    • 6
  4. AB01
    2019-12-27T01:00:38+08:002019-12-27T01:00:38+08:00

    ls -l: 垂直列出目录的文件,但不按特定顺序。

    ls -l | sort -k 3:-k 3将按第 3 列对上一个命令的输出进行排序。

    • 0
  5. Tayyab Hussain
    2021-11-12T01:59:11+08:002021-11-12T01:59:11+08:00

    请试试这个。

    ls -ltrh --sort=size
    

    样本输出

    $ ls -ltrh --sort=size
    total 13M
    drwxr-xr-x 1 tayyab.sarfraz 1049089    0 Nov 11 14:26  ZZZZZ3309669667/
    drwxr-xr-x 1 tayyab.sarfraz 1049089    0 Nov 11 14:26  ZZZZZ1036987434/
    -rw-r--r-- 1 tayyab.sarfraz 1049089  504 Jun 10 17:11  desktop.ini
    -rw-r--r-- 1 tayyab.sarfraz 1049089 1021 Oct 30 13:02  jZHcYAg3964781410.txt
    -rw-r--r-- 1 tayyab.sarfraz 1049089 1021 Oct 30 13:02  jZHcYAg3531170004.txt
    -rw-r--r-- 1 tayyab.sarfraz 1049089 2.0K Oct 18 13:06  ZZZZZ596653076.doc
    -rw-r--r-- 1 tayyab.sarfraz 1049089 2.0K Oct 18 13:06  ZZZZZ2113390587.doc
    -rw-r--r-- 1 tayyab.sarfraz 1049089 4.0K Oct 26 12:35 '!!!!!3048223661.pem'
    
    • 0

相关问题

  • 如何从命令行仅安装安全更新?关于如何管理更新的一些提示

  • 如何从命令行刻录双层 dvd iso

  • 如何从命令行判断机器是否需要重新启动?

  • 文件权限如何工作?文件权限用户和组

  • 如何在 Vim 中启用全彩支持?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何运行 .sh 脚本?

    • 16 个回答
  • Marko Smith

    如何安装 .tar.gz(或 .tar.bz2)文件?

    • 14 个回答
  • Marko Smith

    如何列出所有已安装的软件包

    • 24 个回答
  • Marko Smith

    无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗?

    • 25 个回答
  • Martin Hope
    Flimm 如何在没有 sudo 的情况下使用 docker? 2014-06-07 00:17:43 +0800 CST
  • Martin Hope
    Ivan 如何列出所有已安装的软件包 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    La Ode Adam Saputra 无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗? 2010-11-30 18:12:48 +0800 CST
  • Martin Hope
    David Barry 如何从命令行确定目录(文件夹)的总大小? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher “以下软件包已被保留:”为什么以及如何解决? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford 如何删除 PPA? 2010-07-30 01:09:42 +0800 CST

热门标签

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve