按字母顺序显示结果,无论大小写

按字母顺序显示结果,无论大小写

ls我在 MacOS 11.6.1 上使用。在输出中,大写字母显示在小写字母之前。例如,我得到以下输出:

$ ls

Blabla.txt
GAGAS.txt
asdf.txt
blabla.txt

并希望有:

$ ls

asdf.txt
blabla.txt
Blabla.txt
GAGAS.txt

这是正常的默认输出吗ls?我怎样才能得到输出数字2?

答案1

lsPOSIX 需要对其输出中的文件名进行排序根据当前语言环境中的整理顺序

如果您的系统没有区域设置,其中排序顺序至少在比较字符串的第一遍中忽略大小写,您可以尝试通过管道传输到sort -f

ls -q | sort -f

(可以-q选择通过替换文件名中的控制字符(包括换行符)来保证文件名显示在一行上?(注意这可能会影响顺序)。

或者使用 zsh shell,使用类似以下内容:

lc() REPLY=$REPLY:l
print -rC1 -- *(o+lc)

代替ls。即定义一个lc辅助函数,将 的值更改$REPLY为小写,并将其用作o全局扩展的排序函数(不一定严格等同于不区分大小写的比较,但应该足够接近,特别是对于纯 ASCII 文本)。

相关内容