Board logo

标题: [文本处理] 批处理如何将txt内的数字从小到大排列? [打印本页]

作者: 我是一只小小鸟    时间: 2018-5-13 18:01     标题: 批处理如何将txt内的数字从小到大排列?

如何让txt内的文本从小到大排列呢?每一行的内容都是图中所示的八位数字



感谢大家的热心,我用notepad++处理好了,
作者: hlzj88    时间: 2018-5-13 18:45

  1. for /f %%i in (11.txt) do echo.>%%i.ini
  2. for /f %%i in ('dir /b/on *.ini') do echo %%~ni>>ok.txt
  3. del *.ini
复制代码

作者: yhcfsr    时间: 2018-5-13 20:17

  1. @echo off
  2. for /f %%a in ('type "list.txt"') do set "_%%a=%%a"
  3. (for /f "tokens=2 delims==" %%a in ('set _') do echo;%%a)>"list.log"
  4. pause
复制代码

作者: zaqmlp    时间: 2018-5-13 21:04

位数一样,那么sort<1.txt>2.txt
作者: 我是一只小小鸟    时间: 2018-5-14 09:25

回复 2# hlzj88


   你好,谢谢你的乐心,不过你的代码,把我给搞崩溃了。你是每一行创建了一个ini文件,我的txt文本里有300万行,结果创建了三百万个文件,系统给严重卡死了。
作者: 我是一只小小鸟    时间: 2018-5-14 09:27

回复 4# zaqmlp


    位数是一样的,sort<1.txt>2.txt,这个代码是什么意思,可以解释一下吗,我看不懂
作者: 我是一只小小鸟    时间: 2018-5-14 09:28

回复 3# yhcfsr


    你好,我的行数有300万行,用你的代码十多分钟了,还没有出结果。是不是有什么错误呢。我的位数都一样的
作者: yhcfsr    时间: 2018-5-14 09:51

本帖最后由 yhcfsr 于 2018-5-14 09:53 编辑

回复 7# 我是一只小小鸟


    300万行,BAT处理估计得个把小时了,而且这种以建变量的方式排序,300万个变量,小内存电脑估计吃不消。
长文件应该用powershell,即使是powershell,只怕也要花很长时间,要是只有几个文件,就EXCEL排序吧。
你把文件上传到网盘,让我来测试下,powershell排序要多久?
作者: 我是一只小小鸟    时间: 2018-5-14 11:37

回复 8# yhcfsr


    我用notepad++来修改了,notepad++只用了五秒钟就处理完了
作者: yhcfsr    时间: 2018-5-14 11:57

回复 9# 我是一只小小鸟

从来不曾注意到天天用的notepad++还有这功能,学习了。
作者: CrLf    时间: 2018-5-14 18:01

用 4 楼的 sort 方案也这么慢么?
作者: CrLf    时间: 2018-5-14 18:02

回复 8# yhcfsr


    powershell 处理这种 300 万行的大文本应该也会有点慢
作者: 我是一只小小鸟    时间: 2018-5-14 22:15

回复 11# CrLf


    四楼的我不懂怎么用。是直接复制那个代码吗?我用的是notepad++来解决了这个问题
作者: CrLf    时间: 2018-5-15 17:45

回复 13# 我是一只小小鸟


    没事,解决了就好。理论上那个也挺快
作者: Batcher    时间: 2018-5-15 21:47

回复 13# 我是一只小小鸟


    4楼代码保存为 test.bat 执行一下看看能否成功,没有问题的话我可以给你解释一下代码是什么意思。
作者: tigerpower    时间: 2018-5-15 22:46

亲测了,notepad++数字排序很快,300万行5秒左右。
Windows自带的sort,加上选项也是5秒左右:
  1. sort /L C unsorted.txt > sorted.txt
复制代码

作者: 我是一只小小鸟    时间: 2018-5-17 16:42

回复 16# tigerpower


    非常感谢,你这个代码很好用




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2