Unix的'ls'按名称排序

Dev*_*dar 117 unix ls

你能按名字排序ls列表吗?

Eve*_*ert 125

我的ls默认按名称排序.你在看什么?

  • 那不是真的。使用`ls -la`,我看到:`.bashrc - can - .config - Downloads - .local - tmp`,排序名称为:`.bashrc - .config - .local - Downloads - can - tmp` (4认同)

Mar*_*ark 100

对于简单的事情,您可以将lssort结合起来.仅供参考文件名列表:
ls -1 | 分类

要按相反的顺序对它们进行排序:
ls -1 | 排序-r

  • @BBK这将是一个很好的问题,分别问 (4认同)
  • 有没有办法对这样的文件进行排序:`ls | sort -n` _1.1.1; 1.1.2; 1.1.3; 2.10.1; 2.10.15; 2.10.2; 20年2月10日; 2.10.21; 2.1.1; 2.1.10; 2.1.15; 2.1.2; 2.1.3; 2.1.4; 10.1.1; 10.1.2; 10.1.3; 11.0.1; 11.0.2; 11.0.20; 11.0.21; 11.0.22; _正如您在2.10.2之前看到的**2.10.15**. (2认同)
  • 在 Mac 上,第二个命令似乎可以缩写为“ls -1r”。 (2认同)
  • @BBK sort -V将按版本号排序,所以你得到了...... 2.10.2; 2.10.15; ..来自man sort .. --sort = WORD将根据WORD排序:general-numeric -g,human-numeric -h,month -M,numeric -n,random -R,version -V (2认同)

Ric*_*ith 33

lscoreutils执行区域识别默认排序,并且因此可以产生在一些情况下令人惊讶的结果(例如,%foo将间排序barquuxLANG=en_US).如果您想要ASCIIbetical排序,请使用

LANG=C ls
Run Code Online (Sandbox Code Playgroud)

  • 这个剂量有效,但是当输出是终端时为每个非 ascii 字符输出`?`(来自 ls 的坏功能确实检查它是否输出到终端,在管道时工作)。您可以通过管道“修复”此问题,使用“C.UTF-8”语言环境(如果您的系统支持)和/或使用“-b”标志。更好的是,根本不要使用`ls`,最好使用` (3认同)

use*_*575 17

*nix工具的优点是你可以将它们结合起来:

ls -l | sort -k9,9
Run Code Online (Sandbox Code Playgroud)

输出ls -l将如下所示

-rw-rw-r-- 1 luckydonald luckydonald  532 Feb 21  2017 Makefile
-rwxrwxrwx 1 luckydonald luckydonald 4096 Nov 17 23:47 file.txt
Run Code Online (Sandbox Code Playgroud)

因此,9,99可以将列排序到列9,即文件名.您必须提供停止位置,在这种情况下,该列是相同的列.列开头1.

此外,如果要忽略大写/小写,请添加--ignore-case到sort命令.

  • `-k9,9` 是什么意思? (3认同)
  • 发现,这意味着将列“9”排序到同一列“9”。正常的 ls 输出如下所示:``drwx-------- 8 999 user 4.0K Feb 5 2017 file.txt```,因此第 9 列是文件名。如果你想忽略大小写,请在排序时使用“--ignore-case”。 (2认同)

rus*_*spy 8

注意:"a"在"Z"之后出现:

$ touch A.txt aa.txt Z.txt

$ ls

A.txt Z.txt aa.txt

  • 这并非总是如此.我并不完全知道导致这种情况不正确的情况,但在运行Ubuntu 12.04的机器上,ls的输出按字母顺序排序(忽略大小写). (3认同)

小智 6

仅以数字字符串不同的文件可以在该数字前加上分隔符的情况下进行排序。

在这种情况下,可以使用以下语法:

ls -x1 file | sort -t'<char>' -n -k2
Run Code Online (Sandbox Code Playgroud)

例:

ls -1 TRA*log | sort -t'_' -n -k2

TRACE_1.log
TRACE_2.log
TRACE_3.log
TRACE_4.log
TRACE_5.log
TRACE_6.log
TRACE_7.log
TRACE_8.log
TRACE_9.log
TRACE_10.log
Run Code Online (Sandbox Code Playgroud)