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文件有关,最后打印匹配行信息。

awk双文件互相匹配查找的更多相关文章

  1. linux的文件处理(匹配 正则表达式 egrep awk sed)和系统、核心数据备份

    文件处理 1.处理方式 匹配 正则表达式 egrep awk sed 2.文件中的处理字符 \n  新行符 换行 \t  制表符 tab键 缺省8个空格 \b  退格符 backspace键 退格键 ...

  2. awk多文件操作

    awk 多文件操作2种实现方法 我们经常会将2个有关联文本文件进行合并处理.分别从不同文件获取需要的列,然后, 整体输出到一起.awk进行多文件处理时候,常常会遇到2个方面问题,第一个是怎么样合并多个 ...

  3. VIM在文件夹中查找

    在vim中提供2中方法来在其他文件或者文件夹中搜索字符串,第一种是vimgrep还有一种是grep. 如果只是在当前打开的文件中查找字符串的,使用 :? 后面加上想要搜索的字符串就可以. 这里要解决的 ...

  4. Linux文件查看与查找命令

    cat  查看一个文件 -E: 显示行结束符$ -n: 对显示出的每一行进行编号 -A:显示所有控制符 -b:非空行编号 -s:压缩连续的空行成一行 -T:显示制表符 常用:cat -An /etc/ ...

  5. 06_Linux目录文件操作命令3查找命令_我的Linux之路

    上几节已经大致跟大家说了在Linux端文件目录操作的一些命令 这篇随笔,我们继续来学习对文件目录的操作命令 对文件或目录进行查找的命令 find 指定目录下查找文件 find(选项)(参数) find ...

  6. Linux系统中文件定位与查找

    Linux系统中文件查找 关键词 文件查找 | find | locate 本文主要介绍有关文件查找的两个命令——find和locate,以及压缩打包的命令——compress, gzip,bzip2 ...

  7. glob 文件或目录查找

    glob模块是最简单的模块之一,内容非常少.用它可以查找符合特定规则的文件或目录(含相对或绝对路径).跟使用windows下的文件搜索差不多. 在python中,glob模块是用来查找匹配的文件的 在 ...

  8. vim 精确匹配查找单词【转】

    删除文件中所有的空行:g/^\s*$/d 去掉所有的行尾空格::%s/\s\+$// 整个文件特定字符串的替换:%s/old_word/new_word/g 删除从当前行开始到最后一行的所有内容:., ...

  9. Linux文件及目录查找

    Linux文件及目录查找 一which——显示命令的完整路径 [root@centos71 ~]# which ls alias ls='ls --color=auto' /usr/bin/ls [r ...

随机推荐

  1. .NET开源的背后:是无奈,还是顺应潮流?

    摘要:微软.NET的开源,让很多开发者欣喜若狂.同一时候也有很多人好奇其背后的故事,过去视开源为癌症的微软为什么会突然有这一举措,是出于无奈,还是顺应潮流,而这当中的种种也许能够用文中的六个观点来说明 ...

  2. Spring MVC学习------------核心类与接口

    核心类与接口: 先来了解一下,几个重要的接口与类. 如今不知道他们是干什么的没关系,先混个脸熟,为以后认识他们打个基础. DispatcherServlet   -- 前置控制器 HandlerMap ...

  3. Hibernate Tools-代码生成

    建立好数据库后,点击一个键,代码就生成了,这实在是份十分满意的事情.前面有介绍Hibernate Tools就能够生成代码,那么我们怎么利用它来生成代码呢. 以下就把具体步骤贴出来,相同,有图有真相. ...

  4. Java专业技能面试问题(不定时更新)

    刚看到园友五月的仓颉<面试感悟----一名3年工作经验的程序员应该具备的技能>感觉很不错,不论是为面试跳槽准备,还是打算深化精进自己的技术都可以参考一下.面向工资编程多少也有点道理,虽然技 ...

  5. infludb语法--官网

    https://docs.influxdata.com/influxdb/v0.8/api/query_language/ InfluxDB features a SQL like query lan ...

  6. SQLiteHelp

    using System; using System.Collections.Generic; using System.Text; using System.Data.SQLite; using S ...

  7. Linux学习日记——字符处理

    (菜鸡学习日记 各种使用命令只列举了常用几种,发现错误望指正) 一.管道 在Linux 中,管道就是一个固定大小的缓冲区,大小为一页4K.它是一种通信的机制,可以使用管道符“ | ” 来连接进程,连接 ...

  8. JSON是什么?为JavaScript准备的数据格式

    JSON是什么?为JavaScript准备的数据格式 还不了解JSON是什么?看了下面这篇文章,您对JSON是什么应该能够有了一个比较清晰的概念. JSON 即 JavaScript. Object ...

  9. 3ds Max制作欧式风格的墙壁路灯效果

    在这篇文章中,我将解释我创建我的形象元宵节的步骤.我只是在寻找一个很好的参考图像在互联网上的东西,我觉得我想要的模型,这个形象.我发现了一个巨大的灯笼形象,但在白天的图片拍摄.我想改变我的形象和显示的 ...

  10. ZBrush破解版真的好用么?

    安装ZBrush®的时候是不是经常出现各种奇葩问题,使用ZBrush时候是不是经常出现停止工作状况,究其原因,原来都是破解搞的鬼.ZBrush破解版你还敢用么? 随着国人对版权的重视,越来越多的制作商 ...