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

[文件操作] 批处理如何合并两个txt并去除重复行(相同行只保留一个)?

批处理,合并2个txt文件:有相同的行就合并成1行,没有相同的全部添加到新文件里。

1.txt文件如下:
a
b
c
d
2.txt文件如下:
a
b
e
f
合并后,3.txt如下:
a
b
c
d
e
f
1

评分人数

一点学习能力都没有的吗..
去学去写去用才有进步。安装python3代码存为xx.py 双击运行或右键用IDLE打开按F5运行

TOP

回复 3# codegay


    真不会。。。

TOP

逻辑不就是合并后去重吗.
论坛里有成吨的这类重复性的代码了吧.
去学去写去用才有进步。安装python3代码存为xx.py 双击运行或右键用IDLE打开按F5运行

TOP

本帖最后由 happy886rr 于 2016-3-26 22:37 编辑

回复 3# ygqiang
已加入换行
  1. @echo off
  2. echo,>>1.txt
  3. echo,>>2.txt
  4. findstr /vig:2.txt 1.txt>new.txt
  5. findstr .*  2.txt>>new.txt
  6. pause
复制代码

TOP

回复 5# happy886rr


    多谢。。。
  1. copy 1.txt+2.txt test.txt
  2. @echo off
  3. for /f "delims=" %%i in (test.txt) do (
  4.     if not defined %%i set %%i=A & echo %%i>>ztest.txt)
复制代码

TOP

回复 6# ygqiang


    copy /b 1.txt + 2.txt 3.txt
不过如果1.txt结尾不含回车换行就会有问题

TOP

  1. @echo off
  2. for /f "delims=" %%i in ('find /v "" ^< 1.txt ^& type 2.txt') do (
  3.     if not defined _%%i (
  4.         echo;%%i
  5.         set _%%i=1
  6.     )
  7. )
  8. pause
复制代码

TOP

第三方
  1. gawk "{if(!($0 in a)){print};a[$0]}" 1.txt 2.txt>3.txt
复制代码

TOP

  1. gawk "!a[$0]++" 1.txt 2.txt>3.txt
复制代码

TOP

本帖最后由 pcl_test 于 2016-8-18 22:00 编辑
  1. //&cls&cscript -nologo -e:jscript "%~f0" "1.txt" "2.txt"&pause&exit
  2. var s = '', a = {}, files = WScript.Arguments;
  3. var fso = new ActiveXObject('Scripting.FileSystemObject');
  4. for (var i = 0; i<files.length; i++){
  5.     var f = fso.opentextfile(files(i), 1);
  6.     while(!f.AtEndOfStream){
  7.         var str = f.ReadLine();
  8.         if(!a[str]){
  9.             a[str] = 1;
  10.             s += str+'\r\n';
  11.             //数据太大的话还是逐行输出吧 WSH.echo(str);
  12.         }
  13.     }
  14.     f.Close();
  15. }
  16. WSH.echo(s);
复制代码

TOP

== ygqiang 是版主小号...?
名字都跑到版主签名档里了.
去学去写去用才有进步。安装python3代码存为xx.py 双击运行或右键用IDLE打开按F5运行

TOP

本帖最后由 codegay 于 2016-3-27 01:55 编辑
  1. """
  2. python文件去重合并.py
  3. 2016年3月27日 00:34:36 codegay
  4. """
  5. with open ("1.txt",encoding="utf-8") as f1, open('2.txt',encoding='utf-8') as f2, open('result.txt',"w+",encoding='utf8') as result:
  6.     result.writelines(list(frozenset(f1.readlines()+f2.readlines())))
复制代码
去学去写去用才有进步。安装python3代码存为xx.py 双击运行或右键用IDLE打开按F5运行

TOP

本帖最后由 codegay 于 2016-3-27 09:12 编辑
  1. #="""
  2. julia文本文件合并去重.jl
  3. http://bbs.bathome.net/thread-39822-1-1.html
  4. 2016年3月27日 01:02:58 codegay
  5. """=#
  6. f1=open("1.txt")
  7. txt1=readlines(f1)
  8. txt2=readlines(open("2.txt"))
  9. txt=vcat(txt1,txt2) #以readlines取读文件流,vcat连接两个Array,julia不支持+号连接字符串和数组,支持$符内插
  10. @show length(txt)
  11. result=unique(txt) #内置函数unique去重
  12. #result=Set(txt) Set()方法把数组转为集合,集合中的元素唯一,Set是首字母大写的!
  13. @show length(result)
  14. write(open("result.txt","w+"),result) #与python不同,julia把数组写入文件不需要wirtelines
复制代码
#装B一行流
  1. write(open("result.txt","w+"),unique(vcat(readlines(open("1.txt")),readlines(open("2.txt")))))
复制代码
  1. #julia管道一行流
  2. #union("1.txt"|>open|>readlines,"2.txt"|>open|>readlines)|> xxx ->write(open("result.txt","w"),xxx);
  3. write(open("result.txt","w"),union(["1.txt"|>open|>readlines; "2.txt"|>open|>readlines]));
复制代码
2

评分人数

    • CrLf: 耐撕技术 + 1
    • happy886rr: 夙兴夜寐,新语言更适合计算。技术 + 1
去学去写去用才有进步。安装python3代码存为xx.py 双击运行或右键用IDLE打开按F5运行

TOP

回复 8# WHY


    处理结果有点问题。。

比如:

QQ网购每日精选---QQ网购,轻松购|TXGuiFoundation|

处理以后,会出现乱码。

TOP

返回列表