标题: [文本处理] 批处理如何过滤出两个文本中都不存在的行? [打印本页]
作者: wifayy 时间: 2015-4-29 14:19 标题: 批处理如何过滤出两个文本中都不存在的行?
文本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两个文本中都不存在的行 包括 分号前面相同的行也不要
作者: CrLf 时间: 2015-4-29 14:35
卧槽,文本里没有的东西多了去了,随便编一个都是文本之外的好么
作者: gawk 时间: 2015-4-29 14:37
- gawk -F: "NR==FNR{a[$1]=$1}NR>FNR{if(!($1 in a))print}" B.txt A.txt > C.txt
复制代码
作者: wifayy 时间: 2015-4-29 14:48
回复 2# CrLf
大哥不懂你的意思
作者: wifayy 时间: 2015-4-29 14:50
回复 3# gawk
谢谢哥们 需求变动下 过滤单文本里的重复行和 分号前面相同内容的行 同时得到结果A和B
A是去掉了重复行和分号前面相同内容的行的结果 B是去掉的内容 该怎么写呢
先谢过
作者: gawk 时间: 2015-4-29 15:07
回复 5# wifayy - gawk -F: "{a[$1]++;if(a[$1]==1)print >\"1.txt\";else print >\"2.txt\"}" A.txt
复制代码
作者: wifayy 时间: 2015-4-29 15:10
回复 6# gawk
哥们 我看了半天才发现 你这个不是BAT吧。
作者: gawk 时间: 2015-4-29 16:13
回复 7# wifayy
gawk是一个第三方命令行工具,可以在BAT里面调用,提高处理文件的速度。
作者: wifayy 时间: 2015-4-29 21:31
回复 8# gawk
很有用 感谢了
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |