首页 > 其他分享 >【awk】两文件处理

【awk】两文件处理

时间:2023-10-13 09:26:48浏览次数:35  
标签:文件 FNR 处理 next awk 读入 NR txt

实际工作中经常会遇到两个文件中特定列比较的问题,以下是网上查到两文件比较的代码,包括交集、并集和差集。

  1. 交集
    awk 'NR==FNR{A[$0];next} ($0 in A)' a.txt b.txt

    此处A代表前一个文件,前一个$0指的是a.txt中的数据,后一个则指的是b.txt中的数据。

 

条件NR==FNR成立时,当前读入的是a.txt,执行{A[$0]; next},将a.txt文件每一行存入数组A,并使用$0做为下标引用,next类似于其它语言的continue。
条件NR==FNR不成立时,当前读入的是b.txt,($0 in A)语句判断b.txt的每行数据是否在A数组中,如果存在,则打印出该行数据

 

2. 并集

awk '!A[$1]++' a.txt b.txt

  3. 差集

  当a-b时:

awk 'NR==FNR{A[$0];next} !($0 in A)' b.txt a.txt

  b-a则调过来。

    条件NR==FNR,当前读入的是b.txt,执行{A[$0];next}, 将b.txt文件存入数组A。
    条件NR==FNR不成立时,当前读入的是a.txt,判断a.txt每行数据在A数组中如果不存在,则打印出该行数据

标签:文件,FNR,处理,next,awk,读入,NR,txt
From: https://www.cnblogs.com/muuyouzhi/p/17761101.html

相关文章

  • 使用fluent-ffmpeg将完整视频文件转码切片为.ts .m3u8文件以实现hls流媒体传输
    使用fluent-ffmpeg将完整视频文件转码切片为.ts.m3u8文件以实现hls流媒体传输安装项目内安装:npmiffmpegnpmifluent-ffmpeg外部环境安装:官网下载ffmpeg,将文件bin目录添加为Path系统环境变量C:\Users\lenovo\Desktop\ffmpeg-6.0-essentials_build\ffmpeg-6.0-essential......
  • Win10设置本地用户限制使用指定程序与文件资源
    前言针对特定win10用户登录解决只能访问指定程序和文件,从而保证个人隐私的解决方案。一、新建本地用户账户1、在Windows10系统右键点击左下角的“开始按钮”–》设置--》账户--》将其他人添加到这台电脑。   2.在左侧用户上右键–》点“新用户”–》完成创建操作。......
  • Spring Boot读取resource目录下文件失败解决方案及分析
    背景最近有个需求,就是需要从resources目录下读取文件返回给用户。在idea中运行时,有些resources下文件读取工具类能够正常获取读取到文件。但是通过java–jar的方式去运行jar包,此时resources下文件读取工具类读取文件就失效了。通过查询搜索,了解到了是读取的方式导致文件读取失败......
  • 在java中将InputStream对象转换为File对象(不生成本地文件)
    importorg.apache.commons.io.IOUtils;importjava.io.File;importjava.io.FileOutputStream;importjava.io.IOException;importjava.io.InputStream;publicclassStreamUtil{staticfinalStringPREFIX="stream2file";//前缀字符串定义文件名;必须至少三个字符......
  • 2023-10-12 javac : 无法将“javac”项识别为 cmdlet、函数、脚本文件或可运行程序的
    找到你的jdk安装路径/bin,复制并扔到环境变量中去即可,如:   ......
  • 【OSS】存放文件后,网页无法访问,控制台报错无法跨域访问
    来源BNDong/Cnblogs-Theme-SimpleMemory/issues/403用自己的oss(阿里云)存了dist,然后按照https://bndong.github.io/Cnblogs-Theme-SimpleMemory/v2/#/Docs/Guide/cdn这里的教程修改了“博客侧边栏公告”中的内容,控制台出现了报错hasbeenblockedbyCORSpolicy:NO'Access-......
  • 网安--sql注入(文件读写)
    读写的内容:1、用户的信息2、配置信息文件读写注入的条件secure_file_priv限制了mysql导出文件的权限Linux:cat/etc/my.cnfwin:my.ini中的secure_file_privsecure_file_priv=null           代表不能进行文件读写secure_file_priv=文件路径   代表能在该文......
  • BMP图像处理
    目录BMP图像python代码处理后的BMP图像BMP图像python代码处理后的BMP图像......
  • Shell(五):文件的排序、合并和分割
    Linux文本处理命令是Shell编程中的常用命令,文本处理包含对文件记录的排序、文件的合并和分割等。1、sort命令sort命令是一种对文件排序的工具,sort命令将输入文件看做由多条记录组成的数据流,而记录由可变宽度的字段组成,以换行符作为定界符。sort命令,可将记录分成多......
  • Shell(四):awk编程
    1、awk简介awk因三位缔造者的名字而命令(Aho、Weinberger和Kernighan),是一种能够对结构化数据进行操作,并产生格式化报表的编程语言。awk功能与sed相似,都是用来进行文本处理的,awk语言可以从文件或字符串中基于指定规则浏览和抽取信息,在抽取信息的基础上,才能进行其他文本......