awk双文件互相匹配查找

要求

文件a:  
10/05766798607,11/20050325191329,29/0.1,14/05766798607  
10/05767158557,11/20050325191329,29/0.08,14/05767158557 

文件b:  
05766798607  
05766798608  
05766798609  
通过文件a和文件b对比,输出结果如下: 
10/05766798607,11/20050325191329,29/0.1,14/05766798607

方法:a) awk -F"[/,  ]" '{if(NR==FNR){a[$1]}else if($2 in a)print $0}' b a

解析:NR为主体行号,FNR为单位文件行号。{if(NR==FNR){a[$1]} 将b文件中的数据放入数组a,else if($2 in a)print $0}' 主要是对b文件内容的操作,判断第二个域中数据是否与a数组中的数据匹配,匹配则打印本行。

b)精简法:awk -F"[,/ ]" '{a[$1]}{if($2 in a)print $0}' b a

解析:-F"[,/ ]" 用,或/ 做分隔符,'{a[$1]}{if($2 in a)print $0}' 用第一个域的值作为数组a的下标,判断第二个域是否与数组a(a数组中的有用数据也就为数组a文件中的,即前三行)中的匹配,因为先读入b文件,且b文件中只有一个域,所以此时判断只与a文件有关,最后打印匹配行信息。

最新文章

  1. java中开源日志记录工具log4j
  2. jsp中,个别乱码进行转码操作
  3. 斯坦福第十二课:支持向量机(Support Vector Machines)
  4. 【kAri OJ】621. 廖神的树
  5. LintCode "The Smallest Difference"
  6. 转载Jquery中的三种$()
  7. poj 2479 Maximum sum (最大字段和的变形)
  8. android防止系统截屏
  9. 通过分析 JDK 源代码研究 Hash 存储机制--转载
  10. 关于OC中的几种代码延迟执行方式
  11. 关于用 random 生成伪随机数的一个手笔
  12. python学习(2)
  13. ThreadPool&ManualResetEvent
  14. SQL Server 使用问题解答(持续更新中)
  15. 2017-2018-1 20155205 实现mypwd
  16. 爬虫初探--PHP
  17. 【推荐】.NETCore 简单且高级的库 csredis v3.0.0
  18. 安卓开发中strings.xml的使用
  19. linux实现共享内存同步的四种方法
  20. Unity AssetBoundle 打包流程

热门文章

  1. 12. mysql show status
  2. File and Folder Permissions
  3. QT-简介
  4. 利用hexo+github创建个人博客
  5. apache include 文件包含引用的方法 报错 [an error occurred while processing this directive]
  6. Unity局部坐标系与世界坐标系的区别
  7. 路飞学城Python-Day19
  8. C语言基本语法——数组
  9. Extjs iconCls 的用法
  10. Python发行版本Anaconda的安装说明:基于Anaconda2-4.3.1-Windows-x86_64