[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

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

本帖最后由 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
1

评分人数

请善用论坛搜索,论坛中已有大量已解决的同类问题

TOP

回复 2# bailong360

论坛和网络上最常用的方法(判断行是否定义的方法)在我发帖前已尝试过,见图,无果,b.txt去重错误
    请大神们知道我写错在哪,指点下

TOP

如何高效地做到大文本去除重复行https://segmentfault.com/q/1010000000445384
去学去写去用才有进步。安装python3代码存为xx.py 双击运行或右键用IDLE打开按F5运行

TOP

本帖最后由 enoone1 于 2016-3-17 09:53 编辑

回复 4# codegay


    是个方法 但是我处理简单的文本不想用到第三方的uniq,存BAT最好,迁移环境方便使用。

TOP

回复 5# enoone1


    ...关我什么事。。。
去学去写去用才有进步。安装python3代码存为xx.py 双击运行或右键用IDLE打开按F5运行

TOP

本帖最后由 bailong360 于 2016-3-17 22:58 编辑

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

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

顺便代码里不要太多&,以便阅读

TOP

  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

评分人数

TOP

回复 8# CrLf
我用纯批处理的时候,你们在用第三方
我用第三方的时候,你们在用js混编
我用js混编的时候,你们玩起hta来了

TOP

回复 9# bailong360


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

评分人数

去学去写去用才有进步。安装python3代码存为xx.py 双击运行或右键用IDLE打开按F5运行

TOP

换了种方式,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

评分人数

TOP

回复 9# bailong360


    爱抚楼主狗头,莫哭,莫哭

TOP

返回列表