Board logo

标题: [文本处理] 【已解决】批处理怎样把TXT文档,取单行,得到数据按小到大顺序排列? [打印本页]

作者: 976235887    时间: 2015-8-26 09:56     标题: 【已解决】批处理怎样把TXT文档,取单行,得到数据按小到大顺序排列?

本帖最后由 976235887 于 2015-9-7 08:27 编辑

a.txt文档如下

1222
1333
2555
5522
1155
4545

要求:1取单行的数据:
1222
2555
1155
要求:2取到的数据之后按从小到大的顺序排列
1155
1222
2555
作者: 尘丶    时间: 2015-8-26 10:11

  1. @echo off&setlocal enabledelayedexpansion
  2. for /f "delims=" %%a in (a.txt) do (
  3.     set /a n+=1
  4.     set /a num=!n!%%2
  5.     if !num!==1 echo;%%a&set "shuzi=!shuzi!%%a "
  6. )
  7. echo.
  8. for /l %%a in (0,1,100000) do (
  9.     for %%b in (!shuzi!) do (
  10.         if %%a==%%b echo;%%b>>2.txt
  11. )
  12. )
  13. pause
复制代码
文本里面的数字有多大 for /l In 后面的数字就改多大
作者: flyinnet9    时间: 2015-8-26 10:34

本帖最后由 flyinnet9 于 2015-8-26 11:22 编辑

看错了。。。。。
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set n=0
  4. :s
  5. for /f "delims=" %%a in ('more +!n! a.txt') do (
  6.   echo %%a >>tmp
  7.   set /a n=n+2
  8.   if "%%a" neq "" goto s
  9. )
  10. sort tmp >2.txt
  11. del tmp /q
复制代码

作者: aa77dd@163.com    时间: 2015-8-26 10:50

  1. @echo off & setlocal EnableDelayedExpansion
  2. if "%1"=="sub" (
  3.     for /f %%a in (a.txt) do (
  4.         set /a "t=1-t"
  5.         if !t!==1 (
  6.             set "s=                    %%a"
  7.             (echo;!s:~-20!)
  8.         )
  9.     )
  10.     exit
  11. ) else (
  12.     >b.txt ( for /f %%a in ('cmd /c %0 sub ^| sort') do echo %%a )
  13. )
  14. start b.txt
  15. pause
复制代码

作者: pcl_test    时间: 2015-8-26 11:47

  1. :先下载http://batch-cn.qiniudn.com/tool/gawk.exe
  2. @(gawk "NR%%2" "a.txt")|sort >"b.txt"
复制代码

作者: 回家路上    时间: 2015-8-26 12:14

  1. @echo off & setlocal enabledelayedexpansion
  2. %1%~f0 :|sort&pause&exit /b
  3. for /f "delims=" %%i in (1.txt) do (
  4. set /a line+=1,li=line%%2
  5. if !li!==1 echo;%%i
  6. )
复制代码

作者: 976235887    时间: 2015-9-7 08:27

谢谢以上各位。




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