我有一个文件夹列表
$ ls -1 .
_dns
linux
mariadb
minio
mongodb
nginx
_postgresdb
_python
_rabbitmq
redis
sphinx
supervisor
$
我希望它们按字典顺序排列(例如 vim 排序提供的顺序):
$
_dns
_postgresdb
_python
_rabbitmq
linux
mariadb
minio
mongodb
nginx
redis
sphinx
supervisor
$
我没有成功地用unix排序做到这一点:
$ ls -1 . | sort
_dns
linux
mariadb
minio
mongodb
nginx
_postgresdb
_python
_rabbitmq
redis
sphinx
supervisor
$
即使有选项:
$ ls -1 . | sort -g
_dns
linux
mariadb
minio
mongodb
nginx
_postgresdb
_python
_rabbitmq
redis
sphinx
supervisor
$
$ ls -1 . | sort -b
_dns
linux
mariadb
minio
mongodb
nginx
_postgresdb
_python
_rabbitmq
redis
sphinx
supervisor
$
$ ls -1 . | sort -n
_dns
linux
mariadb
minio
mongodb
nginx
_postgresdb
_python
_rabbitmq
redis
sphinx
supervisor
$
正如这篇文章所示,问题出在区域设置中。
使用 POSIX C 语言环境来获得您期望的结果。
$ cat tmp/filelist.txt | LC_COLLATE=C /usr/bin/sort
_dns
_postgresdb
_python
_rabbitmq
linux
mariadb
minio
mongodb
nginx
redis
sphinx
supervisor