找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 34001|回复: 6

[文本处理] [已解决]bat或vbs删除重复数据

[复制链接]
发表于 2014-7-21 23:18:16 | 显示全部楼层 |阅读模式
本帖最后由 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重复可以处理的快吧  

具体方式 按你的来  高效处理为好

有劳各位朋友帮忙一下 先谢谢了
发表于 2014-7-22 12:55:56 | 显示全部楼层
所有文件都合为一个文件1.txt,用gawk去重复,速度很快
  1. gawk -F# "{a[$1]++;if(a[$1]==1)print $0}" t.txt>>1.txt
复制代码
 楼主| 发表于 2014-7-22 23:30:37 | 显示全部楼层
回复 2# wjx515


    谢谢关注和帮忙,似乎无法使用

继续请教各位朋友,谢谢
发表于 2014-7-23 13:22:30 | 显示全部楼层
本帖最后由 CrLf 于 2014-7-23 13:26 编辑

回复 2# wjx515


    在 {} 之外的部分是条件,条件后如果有代码块则执行代码块,如果没有则默认为 {printf},所以可以简写:
  1. gawk -F# "!a[$1]++" t.txt>>1.txt
复制代码
发表于 2014-7-23 13:23:53 | 显示全部楼层
回复 3# w1983912


    下载一个 gawk.exe
 楼主| 发表于 2014-7-24 00:29:02 | 显示全部楼层
回复 5# DAIC


    谢谢楼上的exe文件,成功了也感谢大家的帮忙 谢谢
发表于 2014-7-25 10:24:23 | 显示全部楼层
回复 4# CrLf


    多谢大师指导!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-18 11:13 , Processed in 0.018504 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表