我想用sort排序文件名列表。 例如:排序点字符第一个
file.ext
file1.ext
z_file2.ext
使用排序,我得到
file1.ext
file.ext
z_file2.ext
我怎么能做到让文件。排序方式:fileXXXX。?
我想用sort排序文件名列表。 例如:排序点字符第一个
file.ext
file1.ext
z_file2.ext
使用排序,我得到
file1.ext
file.ext
z_file2.ext
我怎么能做到让文件。排序方式:fileXXXX。?
正如评论所说,你的问题是,您的区域会产生一个奇怪的排序顺序。区域设置到C的排序应该解决的问题:
LC_ALL=C sort
对于更精确的修复,假设你想使用的语言环境感知整理订单,但仍然分开在扩展排序键,指定.
作为字段分隔符,并使用两种类型的键:
sort -t. -k1,1 -k2
你必须独立于数字的文件名,它们相应的分类和合并回
$ sed -r 's/([0-9]*)\./ &/' file | sort -k1,1 -k2n | sed 's/ //'
file.ext
file1.ext
z_file2.ext
z_file11.ext
尝试运行命令'LC_ALL = C'。 – choroba
谢谢,但它没有帮助 –
什么shell,操作系统,'排序'版本?文件名中是否有隐藏的字符? – choroba