博客
关于我
[Linux] 使用awk比较两个文件的内容
阅读量:656 次
发布时间:2019-03-15

本文共 532 字,大约阅读时间需要 1 分钟。

当需要比较A、B两个文件时,其中A文件中的存在内容,同时将B文件中也存在的行去除,使用AWK脚本的方法可以实现。

AWK脚本伪代码为:

awk '{if(ARGIND==1) {val[$0]} else {if($0 in val) delete val[$0]}} END {for(i in val) print i}' A B

此方法利用AWK的数组功能,通过同时处理多文件的功能来实现数据清洗的逻辑。具体流程如下:

A    sounds(Filter案例:比较两个文件,清洗重复数据)>

A与B文件比较,获取A文件中有但B文件没有的数据,这个AWK脚本可以很好地完成。

AWK脚本主要逻辑:

1. 第一个文件(A)被作为数组初始化,数组键为行内容。

2. 第二个文件(B)被逐行扫描,检查是否存在于A文件中数组的键中,不存在则保留,存在则删除。

3. 最后打印数组中所有键的值,即为最终结果。

AWK脚本执行时,首先会读取文件A的内容,将其作为数组存储。然后读取文件B,逐行检查,如果找到数组中已有的记录,则将其从数组中删除。如果所有文件处理完毕,则将数组中的所有键依次输出。

这种处理方式效率较高,特别是处理大量数据时,能够快速清理重复或冗余的记录。

转载地址:http://xuimz.baihongyu.com/

你可能感兴趣的文章
Nginx面试三连问:Nginx如何工作?负载均衡策略有哪些?如何限流?
查看>>
nginx:/usr/src/fastdfs-nginx-module/src/common.c:21:25:致命错误:fdfs_define.h:没有那个文件或目录 #include
查看>>
Nginx:NginxConfig可视化配置工具安装
查看>>
ngModelController
查看>>
ngrok | 内网穿透,支持 HTTPS、国内访问、静态域名
查看>>
ngrok内网穿透可以实现资源共享吗?快解析更加简洁
查看>>
ngrok内网穿透可以实现资源共享吗?快解析更加简洁
查看>>
NHibernate学习[1]
查看>>
NHibernate异常:No persister for的解决办法
查看>>
nid修改oracle11gR2数据库名
查看>>
NIFI1.21.0/NIFI1.22.0/NIFI1.24.0/NIFI1.26.0_2024-06-11最新版本安装_采用HTTP方式_搭建集群_实际操作---大数据之Nifi工作笔记0050
查看>>
NIFI1.21.0_java.net.SocketException:_Too many open files 打开的文件太多_实际操作---大数据之Nifi工作笔记0051
查看>>
NIFI1.21.0_Mysql到Mysql增量CDC同步中_日期类型_以及null数据同步处理补充---大数据之Nifi工作笔记0057
查看>>
NIFI1.21.0_Mysql到Mysql增量CDC同步中_补充_更新时如果目标表中不存在记录就改为插入数据_Postgresql_Hbase也适用---大数据之Nifi工作笔记0059
查看>>
NIFI1.21.0_NIFI和hadoop蹦了_200G集群磁盘又满了_Jps看不到进程了_Unable to write in /tmp. Aborting----大数据之Nifi工作笔记0052
查看>>
NIFI1.21.0_Postgresql和Mysql同时指定库_指定多表_全量同步到Mysql数据库以及Hbase数据库中---大数据之Nifi工作笔记0060
查看>>
NIFI1.21.0最新版本安装_连接phoenix_单机版_Https登录_什么都没改换了最新版本的NIFI可以连接了_气人_实现插入数据到Hbase_实际操作---大数据之Nifi工作笔记0050
查看>>
NIFI1.21.0最新版本安装_配置使用HTTP登录_默认是用HTTPS登录的_Https登录需要输入用户名密码_HTTP不需要---大数据之Nifi工作笔记0051
查看>>
NIFI1.21.0通过Postgresql11的CDC逻辑复制槽实现_指定表多表增量同步_增删改数据分发及删除数据实时同步_通过分页解决变更记录过大问题_02----大数据之Nifi工作笔记0054
查看>>
NIFI1.21.0通过Postgresql11的CDC逻辑复制槽实现_指定表多表增量同步_增加修改实时同步_使用JsonPath及自定义Python脚本_03---大数据之Nifi工作笔记0055
查看>>