目前,在我的bash脚本中,我打印出目录中所有文件的列表。问题是,所有以大写字母开头的文件首先打印,然后打印小写。如何组合制作一个按字母顺序排列的列表?这是一个或多或少的系统文件列表,我无法将其重命名为相同的情况。
编辑:我需要在每个文件上运行if,这就是我使用循环的原因。我不能只展示它们。
示例:
for file in *.txt
do
if grep -Fxq "$file" disabled.dat
then
echo -e "$GREEN${file}$NC"
else
echo "${file}"
fi
done
输出:
Apple.txt
Banana.txt
Pear.txt
aardvark.txt
snake.txt
zebra.txt
我是bash的新手所以非常感谢所有的帮助。谢谢!
答案 0 :(得分:6)
更改操作系统使用的归类顺序。
$ LC_COLLATE=C bash -c 'echo *.txt'
Apple.txt Banana.txt Pear.txt aardvark.txt snake.txt zebra.txt
$ LC_COLLATE=en_US bash -c 'echo *.txt'
aardvark.txt Apple.txt Banana.txt Pear.txt snake.txt zebra.txt