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

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

[复制链接]
发表于 2022-12-20 10:46:01 | 显示全部楼层 |阅读模式
【问题描述】

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

 楼主| 发表于 2022-12-20 10:47:04 | 显示全部楼层
【解决方案】

如果真实数据跟这个样本格式相同,那么可以考虑不区分第几列,直接对比:
  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
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-17 03:36 , Processed in 0.010064 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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