标题: [文本处理] [已解决]bat或vbs删除重复数据 [打印本页]
作者: w1983912 时间: 2014-7-21 23:18 标题: [已解决]bat或vbs删除重复数据
本帖最后由 w1983912 于 2017-11-16 01:01 编辑
BAT 或者vbs
入txt
若干txt 1-1000多个 每个txt 约有5万行左右数据,淡然也可以分割后处理
每行数据组成:###后为数字 前为 符号 字母 数字 中文 其他文都有可能
以1.txt开始
游戏###450
高 1aaa###9910
游戏###150
123可以 哈么###1
kdkekke###70001
游戏game###450
先把 ###号前的字符串 绝对匹配 删除重复的 除第一条外 (保留行号最小的那条)
输出格式为: @@@游戏###450!!! @@@ ### !!! 这3个也可以换成别的 最好赋值吧 方便我换成别的字符
@@@游戏###450!!!
@@@高 1aaa###9910!!!
@@@123可以 哈么###1!!!
@@@kdkekke###70001!!!
@@@游戏game###450!!!
保存为all.txt文件
然后进入处理2.txt 删除掉 前部分重复的数据 再和all.txt 比较是否有重复的 不重复的都加进all.txt 按顺序 如1.txt 然后是2.txt写入all.txt .......
最好先处理 单个txt 因为单个小的txt重复可以处理的快吧
具体方式 按你的来 高效处理为好
有劳各位朋友帮忙一下 先谢谢了
作者: wjx515 时间: 2014-7-22 12:55
所有文件都合为一个文件1.txt,用gawk去重复,速度很快- gawk -F# "{a[$1]++;if(a[$1]==1)print $0}" t.txt>>1.txt
复制代码
作者: w1983912 时间: 2014-7-22 23:30
回复 2# wjx515
谢谢关注和帮忙,似乎无法使用
继续请教各位朋友,谢谢
作者: CrLf 时间: 2014-7-23 13:22
本帖最后由 CrLf 于 2014-7-23 13:26 编辑
回复 2# wjx515
在 {} 之外的部分是条件,条件后如果有代码块则执行代码块,如果没有则默认为 {printf},所以可以简写:- gawk -F# "!a[$1]++" t.txt>>1.txt
复制代码
作者: DAIC 时间: 2014-7-23 13:23
回复 3# w1983912
下载一个 gawk.exe
作者: w1983912 时间: 2014-7-24 00:29
回复 5# DAIC
谢谢楼上的exe文件,成功了也感谢大家的帮忙 谢谢
作者: wjx515 时间: 2014-7-25 10:24
回复 4# CrLf
多谢大师指导!
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |