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

[文本处理] 【已解决】批处理如何删除文本里多余的重复行(相同行只保留一个)?

[复制链接]
发表于 2016-3-16 16:48:09 | 显示全部楼层 |阅读模式
本帖最后由 enoone1 于 2016-3-18 12:20 编辑

求助,如何去除当前目录下的所有文本文件重复行
如当前目录下有a.txt 和b.txt:
a.txt内容:
1
1
2

b.txt内容:
1
1
2
3

一个BAT处理后a.txt文件变成
1
2

b.txt变成
1
2
3

评分

参与人数 1PB -4 收起 理由
pcl_test -4 未按版规发帖

查看全部评分

发表于 2016-3-16 22:04:02 | 显示全部楼层
请善用论坛搜索,论坛中已有大量已解决的同类问题
 楼主| 发表于 2016-3-17 09:29:00 | 显示全部楼层
回复 2# bailong360

论坛和网络上最常用的方法(判断行是否定义的方法)在我发帖前已尝试过,见图,无果,b.txt去重错误
    请大神们知道我写错在哪,指点下
发表于 2016-3-17 09:41:53 | 显示全部楼层
如何高效地做到大文本去除重复行https://segmentfault.com/q/1010000000445384
 楼主| 发表于 2016-3-17 09:51:52 | 显示全部楼层
本帖最后由 enoone1 于 2016-3-17 09:53 编辑

回复 4# codegay


    是个方法 但是我处理简单的文本不想用到第三方的uniq,存BAT最好,迁移环境方便使用。
发表于 2016-3-17 10:05:51 | 显示全部楼层
回复 5# enoone1


    ...关我什么事。。。
发表于 2016-3-17 22:55:57 | 显示全部楼层
本帖最后由 bailong360 于 2016-3-17 22:58 编辑

回复 3# enoone1
你咋不先说清楚呢,加上这句话这问题才值得回答。

每处理一个文件时要初始化一次变量表,否则上一个文本的定义还会保留。你的代码相当于所有txt合并起来去重
具体方法   在处理一个文件之前使用setlocal开启一个新的变量表,处理完毕后使用endlocal丢弃。话说手机党不方便码,下次提问请将代码发出

顺便代码里不要太多&,以便阅读
发表于 2016-3-17 23:15:07 | 显示全部楼层
  1. @mshta http://bathome.net/s/hta/?string "o={};type('旧.txt').split(/\r?\n/).each(function(s){o[s]||(o[s]=1)});names(o)" >新.txt
复制代码

评分

参与人数 1技术 +1 收起 理由
bailong360 + 1 这么强大

查看全部评分

发表于 2016-3-18 06:55:47 | 显示全部楼层
回复 8# CrLf
我用纯批处理的时候,你们在用第三方
我用第三方的时候,你们在用js混编
我用js混编的时候,你们玩起hta来了
发表于 2016-3-18 09:26:47 | 显示全部楼层
回复 9# bailong360


    哈哈,可以玩玩julia啊.可以很方便地调用其它语言的代码.

评分

参与人数 1技术 +1 收起 理由
bailong360 + 1 收藏了

查看全部评分

 楼主| 发表于 2016-3-18 09:30:00 | 显示全部楼层
换了种方式,OK了,分享下
  1. @echo off
  2. for %%j in (*.txt) do (
  3.     (for /f "tokens=*" %%i in (%%j) do findstr /C:"%%i" $>nul||echo %%i)>$
  4.     move $ %%j
  5. )
  6. pause
复制代码

评分

参与人数 1技术 +1 收起 理由
codegay + 1 1

查看全部评分

发表于 2016-3-18 11:53:44 | 显示全部楼层
回复 9# bailong360


    爱抚楼主狗头,莫哭,莫哭
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-18 00:19 , Processed in 0.019874 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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