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

[文本处理] 批处理如何过滤出两个文本中都不存在的行?

[复制链接]
发表于 2015-4-29 14:19:22 | 显示全部楼层 |阅读模式
文本A 内容

1111:111 111
2222:222 222
3333:333 333
4444:444 444
5555:888 888

文本B 内容
1111:sss sss
2222:zzz xxx
3333:333 333
4444:qww eee

首先过滤出 3333:333 333  完全一样的内容行
其次过滤出 分号前面相同 后面不同的内容行 如
1111:sss sss 1111:111 111
2222:zzz xxx 2222:222 222
4444:444 444 4444:qww eee

得到5555:888 888  AB 两个文本中 都不存在的行 类似于5555:777 777 也不行

也就是说过滤出 AB两个文本中都不存在的行 包括 分号前面相同的行也不要
发表于 2015-4-29 14:35:54 | 显示全部楼层
卧槽,文本里没有的东西多了去了,随便编一个都是文本之外的好么
发表于 2015-4-29 14:37:23 | 显示全部楼层
  1. gawk -F: "NR==FNR{a[$1]=$1}NR>FNR{if(!($1 in a))print}" B.txt A.txt > C.txt
复制代码
 楼主| 发表于 2015-4-29 14:48:49 | 显示全部楼层
回复 2# CrLf


    大哥不懂你的意思
 楼主| 发表于 2015-4-29 14:50:43 | 显示全部楼层
回复 3# gawk


    谢谢哥们 需求变动下 过滤单文本里的重复行和 分号前面相同内容的行 同时得到结果A和B
A是去掉了重复行和分号前面相同内容的行的结果 B是去掉的内容 该怎么写呢
先谢过
发表于 2015-4-29 15:07:31 | 显示全部楼层
回复 5# wifayy
  1. gawk -F: "{a[$1]++;if(a[$1]==1)print >"1.txt";else print >"2.txt"}" A.txt
复制代码
 楼主| 发表于 2015-4-29 15:10:50 | 显示全部楼层
回复 6# gawk


    哥们 我看了半天才发现 你这个不是BAT吧。
发表于 2015-4-29 16:13:55 | 显示全部楼层
回复 7# wifayy


    gawk是一个第三方命令行工具,可以在BAT里面调用,提高处理文件的速度。
 楼主| 发表于 2015-4-29 21:31:51 | 显示全部楼层
回复 8# gawk


    很有用 感谢了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-19 06:15 , Processed in 0.080250 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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