小松鼠 发表于 2008-3-10 18:37

【求助】请教:如何快捷的排除文本文件中相同的部份。

如:host文件。查找相同的部份并删除其中之一

大洗衣盆 发表于 2008-3-10 18:45

如果是TXT文件很难实现吧...

如果是DOC可以编程实现,不过不懂,呵呵.

webgenius 发表于 2008-3-11 05:50

有软件可以做到。。。
你去搜word document comparison

larryh 发表于 2008-3-11 10:01

语言表达。。。唉。说得很不清楚

是两个文件排除其中相同的行?还是一个文件内部排除其中内容重复的行?

小松鼠 发表于 2008-3-11 12:33

是一个文件内部排除其中内容重复的行

larryh 发表于 2008-3-11 13:35

给你个工具,因为我想你不需要保持原来的文件内容顺序,只需要确保去掉重复行。这一点还是UNIX的工具最好。这里有一个完成UNIX SORT命令功能的DOS程序,你用-u参数就能排序同时去掉重复行。

例子和工具如下:

gl2k 发表于 2008-3-11 15:14

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"))

小松鼠 发表于 2008-3-11 15:26

成功!!!谢谢larryh !!!送nb!!

[ Edited by小松鼠 on 2008-3-11 15:40 ]

小松鼠 发表于 2008-3-11 15:38

测试文件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
运行后没有应有效果。

大洗衣盆 发表于 2008-3-11 15:41

强...批处理简单实用....

gl2k 发表于 2008-3-11 15:42

回复 #10 小松鼠 的帖子

原文件当然不会变啊 我上面指定的输出文件名是hosts.out呢 ^^

小松鼠 发表于 2008-3-11 16:37

我上面指定的输出文件名是hosts.out呢

意思是说生成hosts.out,但没有生成该文件?

小松鼠 发表于 2008-3-12 16:02

@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]
查看完整版本: 【求助】请教:如何快捷的排除文本文件中相同的部份。