我试图找到一种方法,以不区分大小写的方式打印ls命令的结果。
目前ls命令导致:
Apple
Boy
Chart
Dock
apples
boys
charts
docks
我想要的是这个:
Apple
apples
Boy
boys
Chart
charts
Dock
docks
这可能吗?
答案 0 :(得分:10)
ls
(至少如果你使用的是GNU coreutils版本; ls --version
来检查)根据当前的语言环境对文件名进行排序。
可用语言环境的集合因系统而异(列表为locale -a
),但在我的系统中:
LC_COLLATE=en_US.utf8 ls
在a
和A
之前使用b
和B
对名称进行排序 - 尽管它可能不是完全寻找。
即使ls
列出了多列中的文件,这也很有用,这对sort -f
很难实现。
(我$LC_COLLATE
专门设置为C
,以便以ASCII顺序完成区域设置敏感的排序。)
答案 1 :(得分:5)
只需将结果传递给sort -f
。
答案 2 :(得分:0)
# alias ll='(LC_COLLATE=en_US.utf8 && export LC_COLLATE && shopt -s nocaseglob && /bin/ls -alF --color=auto )'
# ll
答案 3 :(得分:0)
作为[Keith Thompson]答案的后续内容,我在Linux系统上进行了测试,LC_COLLATE = C对我不起作用,但是LC_COLLATE =“en_US.UTF-8”。我在启动脚本中添加了以下内容:
export LANG=en_US.UTF-8
export LC_COLLATE="en_US.UTF-8"
这在OS X上不起作用。
答案 4 :(得分:-1)
添加到.profile:
alias llg='ls -ltr | grep -i'
然后您可以使用以下命令:
llg "week"