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

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

文本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两个文本中都不存在的行 包括 分号前面相同的行也不要

卧槽,文本里没有的东西多了去了,随便编一个都是文本之外的好么

TOP

  1. gawk -F: "NR==FNR{a[$1]=$1}NR>FNR{if(!($1 in a))print}" B.txt A.txt > C.txt
复制代码
Talk is cheap. Show me the code.
没事不要瞎扯淡,有能耐就把代码贴出来给我看。

TOP

回复 2# CrLf


    大哥不懂你的意思

TOP

回复 3# gawk


    谢谢哥们 需求变动下 过滤单文本里的重复行和 分号前面相同内容的行 同时得到结果A和B
A是去掉了重复行和分号前面相同内容的行的结果 B是去掉的内容 该怎么写呢
先谢过

TOP

回复 5# wifayy
  1. gawk -F: "{a[$1]++;if(a[$1]==1)print >\"1.txt\";else print >\"2.txt\"}" A.txt
复制代码
Talk is cheap. Show me the code.
没事不要瞎扯淡,有能耐就把代码贴出来给我看。

TOP

回复 6# gawk


    哥们 我看了半天才发现 你这个不是BAT吧。

TOP

回复 7# wifayy


    gawk是一个第三方命令行工具,可以在BAT里面调用,提高处理文件的速度。
Talk is cheap. Show me the code.
没事不要瞎扯淡,有能耐就把代码贴出来给我看。

TOP

回复 8# gawk


    很有用 感谢了

TOP

返回列表