我正在尝试找到一种方法以不区分大小写的方式打印 ls 命令的结果。
当前 ls 命令导致:
Apple
Boy
Chart
Dock
apples
boys
charts
docks
我想要的是这个:
Apple
apples
Boy
boys
Chart
charts
Dock
docks
这可能吗?
我正在尝试找到一种方法以不区分大小写的方式打印 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
使用andA
之前b
和之前对名称进行排序B
- 尽管它可能不完全符合您要查找的顺序。
即使ls
在多列中列出文件,这也适用,这很难用sort -f
.
(我已专门$LC_COLLATE
设置C
为以 ASCII 顺序完成对区域设置敏感的排序。)
只需将结果通过管道传输到sort -f
.
作为 [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 上不起作用。
# alias ll='(LC_COLLATE=en_US.utf8 && export LC_COLLATE && shopt -s nocaseglob && /bin/ls -alF --color=auto )'
# ll
添加到 .profile:
alias llg='ls -ltr | grep -i'
那么您可以使用以下命令:
llg "week"