繁体   English   中英

Bash:如何排序路径?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM