【求助】请教:如何快捷的排除文本文件中相同的部份。
如:host文件。查找相同的部份并删除其中之一 如果是TXT文件很难实现吧...如果是DOC可以编程实现,不过不懂,呵呵. 有软件可以做到。。。
你去搜word document comparison 语言表达。。。唉。说得很不清楚
是两个文件排除其中相同的行?还是一个文件内部排除其中内容重复的行? 是一个文件内部排除其中内容重复的行 给你个工具,因为我想你不需要保持原来的文件内容顺序,只需要确保去掉重复行。这一点还是UNIX的工具最好。这里有一个完成UNIX SORT命令功能的DOS程序,你用-u参数就能排序同时去掉重复行。
例子和工具如下: Posted by 小松鼠 on 2008-3-11 12:33 http://www.ibmnb.com/images/common/back.gif
是一个文件内部排除其中内容重复的行
用批处理命令就可以
@for /f "tokens=*" %%i in (hosts) do (if not defined %%i (echo %%i>> hosts.out&set "%%i=ok")) 成功!!!谢谢larryh !!!送nb!!
[ Edited by小松鼠 on 2008-3-11 15:40 ] 测试文件hosts
127.0.0.1 bn.bfast.com
127.0.0.1 c3.xxxcounter.com
127.0.0.1 califia.imaginemedia.com
127.0.0.1 bn.bfast.com
127.0.0.1 c3.xxxcounter.com
127.0.0.1 califia.imaginemedia.com
127.0.0.1 bn.bfast.com
127.0.0.1 c3.xxxcounter.com
127.0.0.1 califia.imaginemedia.com
------------------------------------------
把@for /f "tokens=*" %%i in (hosts) do (if not defined %%i (echo %%i>> hosts.out&set "%%i=ok"))保存在与hosts相同目录 aa.cmd
运行后没有应有效果。 强...批处理简单实用....
回复 #10 小松鼠 的帖子
原文件当然不会变啊 我上面指定的输出文件名是hosts.out呢 ^^ 我上面指定的输出文件名是hosts.out呢意思是说生成hosts.out,但没有生成该文件? @for /f "tokens=*" %%i in (hosts) do (if not defined %%i (echo %%i>> hosts.out&set "%%i=ok"))
为什么头要加@
请帮忙解释一下@for /f "tokens=*" %%i in (hosts) do (if not defined %%i (echo %%i>> hosts.out&set "%%i=ok")),每一部份具体意义,谢谢!!
页:
[1]