标题: [文本处理] [已解决]批处理文件如何让文本内容按拼音排序? [打印本页]
作者: 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
- @echo off
- (for /f "delims=" %%i in ('sort 1.txt') do if not defined %%i echo %%i&set "%%i==")>$
- move $ 1.txt
- pause
复制代码
作者: lvsehuaxue 时间: 2012-1-31 14:25
- @echo off
- for /f "delims=" %%i in (1.txt) do set *%%i==
- (for /f "tokens=1,2 delims=*= " %%i in ('set *') do echo %%i %%j)>1.txt
- pause
复制代码
作者: gu3669 时间: 2012-1-31 16:23
回复 2# lvsehuaxue
2楼这个是成功的。不过,有一点小问题:原来所有要整理的文本,第一行都是空行,这样一整理空行就消失了,能不能在整理完后再把那个空行再自动加上。谢谢了!
作者: lvsehuaxue 时间: 2012-1-31 18:10
回复 4# gu3669
代码稍加修改即可。- @echo off
- echo.>$
- for /f "delims=" %%i in ('sort 1.txt') do if not defined %%i echo %%i>>$&set "%%i=="
- move $ 1.txt
复制代码
作者: gu3669 时间: 2012-1-31 19:05
回复 5# lvsehuaxue
非常感谢!
作者: apang 时间: 2012-2-2 20:53
- @echo off&setlocal enabledelayedexpansion
- (echo.
- for /f "delims=" %%i in ('sort 1.txt') do (
- set aa=%%i&call :loop
- for %%j in ("!aa!") do if not defined %%j echo !aa!&set "%%j=="
- ))>$
- move $ 1.txt&goto :eof
- :loop
- 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 |