标题: [文本处理] 批处理如何删除文本里的多余重复行(重复的只保留一行) [打印本页]
作者: pengyou86 时间: 2008-8-6 08:37 标题: 批处理如何删除文本里的多余重复行(重复的只保留一行)
本帖最后由 pcl_test 于 2016-11-9 21:43 编辑
一个txt文本里面有多行数字组合。但有重号的,怎样才能把重号删除或者区分出来.谢谢!大家给个思路或者批处理也行的
123000
234000
123000
341371
385379
363075
327522
334654
351271
384798
308713
333604
321328
359724
256111
256111
341371
385379
363075
327522
334654
351271
384798
308713
333604
321328
359724
作者: huahua0919 时间: 2008-8-6 11:00
- @echo off
- for /f "delims=" %%i in (a.txt) do (
- if not defined %%i (echo %%i)
- set "%%i=脚本之家"
- )
- pause
复制代码
作者: pengyou86 时间: 2008-8-23 00:17 标题: 回复 2楼 的帖子
测试不可以用啊!
作者: pusofalse 时间: 2008-8-23 00:24
不可以用?因为你只尝试了一种可能,试下把你的文件改为a.txt
如果还不行,继续尝试其他可能。别人不可能什么都教你。
作者: pengyou86 时间: 2008-8-28 00:03 标题: 回复 4楼 的帖子
我想把重复号码删除,但这个批处理可以区分出来。
作者: jellyhk 时间: 2008-8-28 00:36
顶起
高手解决!!
作者: batman 时间: 2008-8-28 08:35
建议楼主发问前先搜索,养成好的习惯,下面给出解决办法:- @echo off
- for /f %%i in ('type a.txt') do (
- if not defined flag (
- echo %%i>a.txt
- set "_%%i=a"&set "flag=a"
- ) else (
- if not defined _%%i echo %%i>>a.txt&set "_%%i=a"
- )
- )
- start a.txt
复制代码
[ 本帖最后由 batman 于 2008-8-28 09:08 编辑 ]
作者: start 时间: 2008-8-28 10:39 标题: 回复 2楼 的帖子
请问下大家哦.那个2楼的代码我试了下,那个if not defined %%i (echo%%i)
这一个我不明白...
我试着把not去掉`结果也是一样..if not defined %%i (echo %%i)和if define %%i echo %%i是等效的吗?
作者: batman 时间: 2008-8-28 10:58
我来说明下吧:
if not defined %%i echo %%i的意思是如果不存在以%%i值为名的变量则显示%%i的
值,然后接下来的set "%%i=脚本之家"就命名以%%i值为名的变量将其值设为脚本之家,
这样当再遇到值相同的%%i后就会跳过,从而达到筛选相同值的目的,只是二楼没在重定
向输出,所以只能将不重复的数字显示出来而没有达到更改文本的目的。
[ 本帖最后由 batman 于 2008-8-28 10:59 编辑 ]
欢迎光临 批处理之家 (http://bathome.net./) |
Powered by Discuz! 7.2 |