请问如何删除文本文件中的重复行?
现在有一个文本文件A,其中每一行都是10多位的数字,有几万行。请问如何删除其中的重复行?另外还有一文本文件B,B的内容跟A相同,但B文件中包括A的内容,请问如何在B中找出...
现在有一个文本文件A,其中每一行都是10多位的数字,有几万行。请问如何删除其中的重复行?
另外还有一文本文件B,B的内容跟A相同,但B文件中包括A的内容,请问如何在B中找出A的内容并删除。
谢谢! 展开
另外还有一文本文件B,B的内容跟A相同,但B文件中包括A的内容,请问如何在B中找出A的内容并删除。
谢谢! 展开
3个回答
展开全部
用Replace Pioneer来做,完全满足要求,而且简单快捷:
第一步. 删除A的重复行
1. 按ctrl-o打开文件A
2. 按ctrl-h打开replace对话框,设置如下:
在Replace页:
Replace Unit=Line
Search for Pattern下面填.*(表示任意行)
If下面填get_value($match)==1
(注:以上操作表示删除重复行)
打开Advance页:
Run following at the beginning of text 填 clear_values_all()
Run following for each matched unit 填 set_value($match,1)(注:set_value表示把每行记录下来)
3. 点击Replace,即删除了重复行,存盘。
第二步. 从文件B里删除与A重复的行
文件A的所有行现在已经记录在系统中,只要对B做以下操作:
1. 按ctrl-o打开文件B
2. 按ctrl-h打开replace对话框,设置如下:
在Replace页:
Replace Unit=Line
Search for Pattern下面填.*(表示任意行)
If下面填get_value($match)==1
(注:以上操作表示删除与A重复的行)
3. 点击Replace,即删除了与A重复的行,存盘。
Replace Pioneer 下载地址:http://www.mind-pioneer.com, http://www.download.com
第一步. 删除A的重复行
1. 按ctrl-o打开文件A
2. 按ctrl-h打开replace对话框,设置如下:
在Replace页:
Replace Unit=Line
Search for Pattern下面填.*(表示任意行)
If下面填get_value($match)==1
(注:以上操作表示删除重复行)
打开Advance页:
Run following at the beginning of text 填 clear_values_all()
Run following for each matched unit 填 set_value($match,1)(注:set_value表示把每行记录下来)
3. 点击Replace,即删除了重复行,存盘。
第二步. 从文件B里删除与A重复的行
文件A的所有行现在已经记录在系统中,只要对B做以下操作:
1. 按ctrl-o打开文件B
2. 按ctrl-h打开replace对话框,设置如下:
在Replace页:
Replace Unit=Line
Search for Pattern下面填.*(表示任意行)
If下面填get_value($match)==1
(注:以上操作表示删除与A重复的行)
3. 点击Replace,即删除了与A重复的行,存盘。
Replace Pioneer 下载地址:http://www.mind-pioneer.com, http://www.download.com
参考资料: www.mind-pioneer.com
展开全部
昨天朋友让我帮忙看一个txt文本,看看怎么将此文本中的重复行去掉.其内容大致如下:
程序代码
1=c:\program files\abc\abc.exe
2=c:\%windir%\abc.exe
……
……
4999=d:\def\123.exe
……
此文本中有些行是重复的,但不限于挨着的两行或几行.由于数量较大,已经到了几千行,所以朋友不知道如何处理比较好.他告诉我说他自己写了一段程序来处理这个文本,结果在机器上运行了四个多小时还没有处理完,我问他怎么处理的,他说先将第一行作为查找目标,在它后面逐行查找,找到就将其删除,然后第二行、第三行直到结束……,不用多想,这样肯定有大量的冗余计算,所以4个小时就不足为奇了.
到底怎么处理重复的行最快呢?难道真的要为一个文本专门去写一个程序来处理吗?当我拿到之后突然一个念头就在脑中闪现了,批处理!呵呵,朋友说:知道你批处理厉害嘛,其实不然,并非我批处理厉害,而是想到的方法比他快,哈哈,我的处理方法只需要几分钟即可搞定,当我结果出来的时候我告诉他我只用了"md"和"dir"命令时他怎么都不信.
一起来看看我是怎么处理的.我的大致思路就是一句话:现将文本中的每一行字符包括路径处理一下(即替换掉不能作为文件夹名称的字符,例如"\",空格等),然后用md将这些每一行字符串批量建立文件夹,有重复的部分的话自动就会被新的同名文件夹覆盖掉,然后再用dir命令取所有文件夹的名称,导入到txt文本中,再将特殊字符替换回来即可.
大致步骤是:
1.将文本内容复制到word中,为什么要复制到word里,因为首先word中可以替换回车符,另外,对于大量的字符替换word处理的速度要比记事本快n倍都不止!
2.将特殊字符替换成另外的合法文件名字符,例如":\"可以替换成"@","\"可以替换成"#"等.
3.替换掉所有的行首的数字,替换技巧提示:要加上上一行的回车符来替换,而且替换成回车符加上空.
4.剩下的就是完全合法的一行行文件夹名称了.
5.再用word在每一行前加上"md ",注意:md后面有个空格.
6.将word内容全选复制到记事本中,将记事本保存为bat文件,例如:"md.bat"
7.将md.bat复制到一个新建的文件夹中,然后双击运行.
8.此时md.bat批处理就会欢快的开始运行,大概半分钟后就会运行完毕,然后该新建目录中就会产生大量的空文件夹,而且名称就是文本中的每一行字符串.这样重复的行也就自动消失了:)
9.再用dir命令将所有文件夹名称收集起来记录到一个文本中,所以,我们继续.
10.在此目录中再新建一个记事本文件txt,然后在里面输入一行代码"dir/a/b/o:n>ok.txt",然后保存为"dir.bat"文件.
11.然后双击运行dir.bat,大概半秒钟该批处理就运行完毕了.完毕之后就会在该目录生成一个ok.txt的文本文件,打开该文件看看?呵呵,所有的文件夹名称就全部收集到一起了.
12.将ok.txt文件中的内容全选复制到word中,再将第2步中我们替换过的字符再替换回来,就将文本还原了.
13.替换完之后,我们就基本完成了任务了,最后只需要再想办法(同样可以用批处理)将每一行前面加上一个序号即可.
至此,我们搞定!:)整个过程不超过10分钟:)
程序代码
1=c:\program files\abc\abc.exe
2=c:\%windir%\abc.exe
……
……
4999=d:\def\123.exe
……
此文本中有些行是重复的,但不限于挨着的两行或几行.由于数量较大,已经到了几千行,所以朋友不知道如何处理比较好.他告诉我说他自己写了一段程序来处理这个文本,结果在机器上运行了四个多小时还没有处理完,我问他怎么处理的,他说先将第一行作为查找目标,在它后面逐行查找,找到就将其删除,然后第二行、第三行直到结束……,不用多想,这样肯定有大量的冗余计算,所以4个小时就不足为奇了.
到底怎么处理重复的行最快呢?难道真的要为一个文本专门去写一个程序来处理吗?当我拿到之后突然一个念头就在脑中闪现了,批处理!呵呵,朋友说:知道你批处理厉害嘛,其实不然,并非我批处理厉害,而是想到的方法比他快,哈哈,我的处理方法只需要几分钟即可搞定,当我结果出来的时候我告诉他我只用了"md"和"dir"命令时他怎么都不信.
一起来看看我是怎么处理的.我的大致思路就是一句话:现将文本中的每一行字符包括路径处理一下(即替换掉不能作为文件夹名称的字符,例如"\",空格等),然后用md将这些每一行字符串批量建立文件夹,有重复的部分的话自动就会被新的同名文件夹覆盖掉,然后再用dir命令取所有文件夹的名称,导入到txt文本中,再将特殊字符替换回来即可.
大致步骤是:
1.将文本内容复制到word中,为什么要复制到word里,因为首先word中可以替换回车符,另外,对于大量的字符替换word处理的速度要比记事本快n倍都不止!
2.将特殊字符替换成另外的合法文件名字符,例如":\"可以替换成"@","\"可以替换成"#"等.
3.替换掉所有的行首的数字,替换技巧提示:要加上上一行的回车符来替换,而且替换成回车符加上空.
4.剩下的就是完全合法的一行行文件夹名称了.
5.再用word在每一行前加上"md ",注意:md后面有个空格.
6.将word内容全选复制到记事本中,将记事本保存为bat文件,例如:"md.bat"
7.将md.bat复制到一个新建的文件夹中,然后双击运行.
8.此时md.bat批处理就会欢快的开始运行,大概半分钟后就会运行完毕,然后该新建目录中就会产生大量的空文件夹,而且名称就是文本中的每一行字符串.这样重复的行也就自动消失了:)
9.再用dir命令将所有文件夹名称收集起来记录到一个文本中,所以,我们继续.
10.在此目录中再新建一个记事本文件txt,然后在里面输入一行代码"dir/a/b/o:n>ok.txt",然后保存为"dir.bat"文件.
11.然后双击运行dir.bat,大概半秒钟该批处理就运行完毕了.完毕之后就会在该目录生成一个ok.txt的文本文件,打开该文件看看?呵呵,所有的文件夹名称就全部收集到一起了.
12.将ok.txt文件中的内容全选复制到word中,再将第2步中我们替换过的字符再替换回来,就将文本还原了.
13.替换完之后,我们就基本完成了任务了,最后只需要再想办法(同样可以用批处理)将每一行前面加上一个序号即可.
至此,我们搞定!:)整个过程不超过10分钟:)
参考资料: http://www.heycoffee.com/article.asp?id=320
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你可以用飞梭TXT文本数据处理百宝箱,里面有个文本数据去重工具,可以将重复的数据快速的处理掉,上百万的数据只需要几秒钟就能完成。
飞梭百宝箱,还有数据打乱,文件转码,文件合并,文件分割,文本数据批量生成等工具,非常实用。在多特,非凡,天空,华军,天极上都可以下载。自带的有相关工具的教程链接,不明白的地方可以看教程。
飞梭百宝箱,还有数据打乱,文件转码,文件合并,文件分割,文本数据批量生成等工具,非常实用。在多特,非凡,天空,华军,天极上都可以下载。自带的有相关工具的教程链接,不明白的地方可以看教程。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询