我正在尝试找到一种方法以不区分大小写的方式打印 ls 命令的结果。
当前 ls 命令的结果是:
Apple
Boy
Chart
Dock
apples
boys
charts
docks
我想要的是这个:
Apple
apples
Boy
boys
Chart
charts
Dock
docks
这可能吗?
ls
(至少如果您使用的是 GNU coreutils 版本;ls --version
检查这一点)根据当前区域设置对文件名进行排序。
可用区域设置集因系统而异(
locale -a
用于列表),但在我的系统上:
LC_COLLATE=en_US.utf8 ls
将名称中的
a
和 A
排在 b
和 B
之前 - 尽管它可能不完全按照您要查找的顺序。
即使当 ls
在多列中列出文件时,这也有效,而使用
sort -f
很难做到这一点。(我专门将
$LC_COLLATE
设置为
C
,以便以 ASCII 顺序完成区域设置敏感排序。)
export LANG=en_US.UTF-8
export LC_COLLATE="en_US.UTF-8"
这在 OS X 上不起作用。
# alias ll='(LC_COLLATE=en_US.utf8 && export LC_COLLATE && shopt -s nocaseglob && /bin/ls -alF --color=auto )'
# ll
sudo dpkg-reconfigure locales
alias llg='ls -ltr | grep -i'
然后你可以使用以下命令:
llg "week"