My Bash脚本以字母数字顺序运行文件夹中的内容。但事实证明它与我在Mac OS文件夹中的顺序不同。所以现在我想知道Linux使用的排序顺序是什么,可以改变吗?我可以仅为我的Bash脚本更改它吗?假设我想在Bash脚本中运行视频播放器,以字母数字顺序运行文件夹中的所有视频,我可以在脚本中指定它应该是什么字母数字顺序吗?
答案 0 :(得分:6)
许多命令(包括bash
glob,ls
,sort
)的排序顺序取决于您当前的区域设置。
您可以通过设置LC_COLLATE
环境变量强制排序规则。将其设置为 C 将对 byte 值进行比较。
在我的系统上( en_US.utf8 ):
sh$ touch eleve
sh$ touch élève
sh$ touch Eleve
sh$ touch Élève
sh$ touch äkta
sh$ touch österreich
sh$ ls
äkta eleve Eleve élève Élève österreich pommes
sh$ LC_COLLATE=fr_FR.utf8 ls
äkta eleve Eleve élève Élève österreich pommes
sh$ LC_COLLATE=sv_SE.utf8 ls
eleve Eleve élève Élève pommes äkta österreich
sh$ LC_COLLATE=C ls
Eleve eleve pommes Élève äkta élève österreich