[英]Bash: how does 'sort' sort paths?
sort
如何工作? 我有这个文件:
/test# cat foobar
html/lib/ORM/aaa.php
html/lib/ORMBase/ormbase_aaa.php
html/lib/ORM/zzz.php
html/lib/ORMBase/ormbase_zzz.php
这是sort
的输出:
/test# cat foobar | sort
html/lib/ORM/aaa.php
html/lib/ORMBase/ormbase_aaa.php
html/lib/ORMBase/ormbase_zzz.php
html/lib/ORM/zzz.php
我尝试了很多选项: -f
, -i
, -t/
...而我却得不到它。 我想理解为什么排序认为这是排序的。
注意:它适用于其他样本:
/test# cat foobar2
a/a/a
a/ab/a
a/ab/b
a/a/ab
a/abc/a
/test# cat foobar2 | sort
a/a/a
a/a/ab
a/ab/a
a/ab/b
a/abc/a
sort
尝试在本地化方面很聪明。 它会忽略一些非字母数字字符,如/
等等。 该手册页有一个简短的句子:
*警告*环境指定的区域设置会影响排序顺序。 设置LC_ALL = C以获取使用本机字节值的传统排序顺序。
那么,要解决您的问题:
$ cat foobar | LC_ALL=C sort
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.