[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[代码合集] sort命令默认是怎么排序的?

  1. 今天学习sort
  2. 我的代码是:sort /+8<1.txt
  3. 其结果是:
  4. !@#$%%^
  5. a
  6. 32
  7. 002
  8. 01
  9. 635464316874321346461
  10. aaaaa555
  11. aaaaaaaaaaaaaaaaa
  12. cccccccccccc5555
  13. dddddddddddddddd
  14. dh   sadjkgf
  15. cgbvjlug
  16. ***ldfkgopiahd
  17. );ldkahfa
  18.     kasjdhfa
  19. klsdfyhkcbv
  20.    &kajsdhfpioa
  21. ***aldksfjaoisdf
  22. 不明白,sort默认怎么排序的,/+8之前是怎么排序的,非字符数字的符号怎么排序的?
复制代码

系统帮助的内容:
  /+n                         指定开始每个比较的字符号码 n。/+3 说明每个
                              比较应从每行的第三个字符开始。少于 n 个字符
                              的行排在其他行之前。按默认值,从每行的第一
                              个字符开始比较。

TOP

回复 2# CrLf


    那么32怎么回在002和01前面呢?

TOP

回复 3# bluewing009



   32是两位数,002 是三个...
额...

TOP

本帖最后由 CrLf 于 2011-11-16 18:29 编辑

大发现,原来 sort /+超过行最大字数时,将逆序输出。
那么...
  1. @echo off
  2. sort /+30 %0>将自身逆序输出.txt
  3. pause
  4. ::test
  5. rem 测试
复制代码
寒夜版主对此这样解释(非原话,我有可能曲解):
sort 应该是先把文件载入内存,再倒序向上比较大小,符合时输出符合的内容,不符合时输出当前行,总之是先入后出。

TOP

返回列表