使用awk保留文件1中的行与文件2中的值匹配 [英] Keep rows from file 1 matching values from file 2 using awk

查看:153
本文介绍了使用awk保留文件1中的行与文件2中的值匹配的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

主文件的内容-

$ cat Sort_File2.csv 

'SR'|'2017-09-01 00:19:13'|'+05:30'|'1A3LA7015L5O'|'5042449534546015801549'   
'SR'|'2017-09-01 00:19:13'|'+05:30'|'1A3LA7015L5O'|'5042449534546015801549'    
'SR'|'2017-09-01 00:19:13'|'+05:30'|'1A3LA7015L5Q'|'5042449536906016501541'    
'SR'|'2017-09-01 00:19:20'|'+05:30'|'1A3LA7015L6I'|'5042449603146028701548'

要匹配的文件内容-

$ cat DuplicatesEqTo1_f2.csv 

1|'5042449536906016501541'    
1|'5042449603146028701548'

我希望Awk语句在文件中存储Sort_File2.csv中的行与文件DuplicatesEqTo1_f2.csv中的值匹配.

I want the Awk Statement to Store in File the Rows from Sort_File2.csv matching with the values from in the file DuplicatesEqTo1_f2.csv.

我想要的输出-

'SR'|'2017-09-01 00:19:13'|'+05:30'|'1A3LA7015L5Q'|'5042449536906016501541'    
'SR'|'2017-09-01 00:19:20'|'+05:30'|'1A3LA7015L6I'|'5042449603146028701548'


请注意,我尝试了下面的语句,该语句不起作用并且不返回任何内容-


Note I tried the Below Statement its not working and not returning anything--

awk -F'|' 'NR==FNR{++a[$2];next} $1 in a' DuplicatesEqTo1_f1.csv Sort_File1.csv

推荐答案

您可以将join用于此作业.

You can use join for this job.

var=5;join -t '|' -1 "$var" -2 2 -o 1.1 1.2 1.3 1.4 1.5 Sort_File2.csv DuplicatesEqTo1_f2.csv

这篇关于使用awk保留文件1中的行与文件2中的值匹配的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆