Board logo

标题: [文本处理] [已解决]批处理文件如何让文本内容按拼音排序? [打印本页]

作者: gu3669    时间: 2012-1-31 13:06     标题: [已解决]批处理文件如何让文本内容按拼音排序?

例如文本1.txt里有若干Email地址,是未排序的:

女人 zly19781218@hotmail.com
大华都市 metropolis@china.com
城市时报 db@daobao.sina.net
感悟月刊 strong@fornet.com.cn
鸭绿江日报 yaluriverneo@163.com
流行趋势 luxx@cnstock.com
HOW好 shaojing@howmag.com.cn
123导报 db@daobao.sina.net
鸭绿江日报 yaluriverneo@163.com

排序后应该是这样:

123导报 db@daobao.sina.net
HOW好 shaojing@howmag.com.cn
城市时报 db@daobao.sina.net
大华都市 metropolis@china.com
感悟月刊 strong@fornet.com.cn
流行趋势 luxx@cnstock.com
女人 zly19781218@hotmail.com
鸭绿江日报 yaluriverneo@163.com

排序后应该按数字、字母、汉字的顺序排序,并删除信箱后面多余的空格,删除重复的行,比如有两个“鸭绿江日报  yaluriverneo@163.com”。这个批处理怎么写,求高手帮忙,先谢谢了!(就在原文本里排序即可)
作者: lvsehuaxue    时间: 2012-1-31 14:17

  1. @echo off
  2. (for /f "delims=" %%i in ('sort 1.txt') do if not defined %%i echo %%i&set "%%i==")>$
  3. move $ 1.txt
  4. pause
复制代码

作者: lvsehuaxue    时间: 2012-1-31 14:25

  1. @echo off
  2. for /f "delims=" %%i in (1.txt) do set *%%i==
  3. (for /f "tokens=1,2 delims=*= " %%i in ('set *') do echo %%i %%j)>1.txt
  4. pause
复制代码

作者: gu3669    时间: 2012-1-31 16:23

回复 2# lvsehuaxue

2楼这个是成功的。不过,有一点小问题:原来所有要整理的文本,第一行都是空行,这样一整理空行就消失了,能不能在整理完后再把那个空行再自动加上。谢谢了!
作者: lvsehuaxue    时间: 2012-1-31 18:10

回复 4# gu3669
代码稍加修改即可。
  1. @echo off
  2. echo.>$
  3. for /f "delims=" %%i in ('sort 1.txt') do if not defined %%i echo %%i>>$&set "%%i=="
  4. move $ 1.txt
复制代码

作者: gu3669    时间: 2012-1-31 19:05

回复 5# lvsehuaxue


    非常感谢!
作者: apang    时间: 2012-2-2 20:53

  1. @echo off&setlocal enabledelayedexpansion
  2. (echo.
  3. for /f "delims=" %%i in ('sort 1.txt') do (
  4.     set aa=%%i&call :loop
  5.     for %%j in ("!aa!") do if not defined %%j echo !aa!&set "%%j=="
  6. ))>$
  7. move $ 1.txt&goto :eof
  8. :loop
  9. if "!aa:~-1!"==" " set aa=!aa:~,-1!&goto loop
复制代码
排序并删除邮箱名后面的多余空格。
作者: jdsdsa    时间: 2012-2-2 21:42

回复 7# apang


    批处理还真是博大精深啊   

  dos在排序的时候是怎样辨别汉字中的拼音的


  连接哈计算机怎样暗里工作的
作者: CrLf    时间: 2012-2-3 03:09

回复 8# jdsdsa


    排序次序取决于系统设置。
http://bbs.bathome.net/redirect. ... 3&fromuid=30406




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