批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程
[批处理文件精品]批处理版照片整理器[批处理文件精品]纯批处理备份&还原驱动在线第三方下载
返回列表 发帖

[技术讨论] [分享]awk和grep对比两个文件删除指定列重复行

【问题描述】

如何读取a.txt内容,匹配b.txt已/分隔符第5列前12位的字符串,匹配则删除b.txt的匹配行。

【批处理在线视频分享】http://bbs.bathome.net/thread-31727-1-1.html
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html

我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。

【解决方案】

如果真实数据跟这个样本格式相同,那么可以考虑不区分第几列,直接对比:
  1. grep -vFf a.txt b.txt > c.txt
复制代码
严格匹配第五列,如果a.txt只有一行:
  1. gawk -F "/" "BEGIN{getline s < \"a.txt\"}$5!~s" b.txt > c.txt
复制代码
如果a.txt有一行或多行:
  1. gawk -F "/" "NR==FNR{a[i++]=$0}NR>FNR{n=0;for(i in a)if($5~a[i])n=1;if(n==0)print}" a.txt b.txt > c.txt
复制代码
【批处理在线视频分享】http://bbs.bathome.net/thread-31727-1-1.html
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html

我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。

TOP

返回列表