使用awk比较两个文件的内容

技术使用awk比较两个文件的内容 使用awk比较两个文件的内容干货记录
[Linux] 使用awk比较两个文件的内容
当需要比较A , B两个文件 , A文件中存在 , 并且把也在B文件中存在的行去除掉

使用awk比较两个文件的内容

干货记录

[Linux] 使用awk比较两个文件的内容

当需要比较文件A中存在的文件A和文件B,并删除文件B中也存在的行时,可以使用这个awk用法。

awk“{ if(ARGIND==1){ val[$0]} else { if(val中的$ 0)删除val[$ 0]} } END { for(I in val)print I } ' A B

使用awk同时处理多个文件,配合数组变量进行处理。

首先扫描文件A,将文件A中的每一行作为数组的键放入数组中

然后扫描文件B,确定B中的每一行是否存在于数组中,如果存在,就删除这个数组元素。

最后,在数组中统一打印密钥。

文件准备

创建两个文件,a.txt和b.txt,包含以下内容:

a.txt

b.txt

1-wfhune 2-chdamsbchj 3-uyr92 fiubkqw 5-cgvdnsb

2-djyv4-dvcahsgdb5-wvchdfyt

普通用法,整行对比

命令

diff a.txt b.txt

grep -f a.txt b.txt

grep -vf a.txt b.txt

解释

比较两个文件

从两个文件中获取行。

取文件B中但不在文件a中的行

结果

1,4c1,3 1-wfhune 2-chdamsbchj 3-uyr92 fiubkqw 5-cgvdnsb-2-djyv 4-dvcahsgdb

空的

2-djyv4-dvcahsgdb5-wvchdfyt

高级用法,每行关键部分对比

回头看这两个文件的内容,格式是x-yyyy。我们认为X是关键,yyyy是价值。现在我们只想比较X,而不是yyyy。

我该怎么办?

命令

grep-VF(cut-d-f1 a . txt)(卡特彼勒b.txt)

grep-VF(awk-F '-' ' { print $ 1 } ' a . txt)(cat b . txt)

解释

()用于命令嵌套。Cut -d -f1a.txt,其中参数-d用于定义分隔符,参数-f用于定义分段后要提取的文本段落数。例如,在这里将分隔符定义为“-”,并提取分段后的第一段文本。

用awk命令代替cut命令就可以了,效果一样。Awk的-F参数用于定义分隔符,printf $X提取X段的分段文本。

结果

4-dvcahsgdb

4-dvcahsgdb

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/107442.html

(0)

相关推荐

  • Hibernate中提示serverTimezone出现问题怎么办

    技术Hibernate中提示serverTimezone出现问题怎么办小编给大家分享一下Hibernate中提示serverTimezone出现问题怎么办,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望

    攻略 2021年12月8日
  • 求圆的面积公式,用直径计算圆面积的公式

    技术求圆的面积公式,用直径计算圆面积的公式圆用直径算面积公式:S=πd²/4其中:S表示圆的面积求圆的面积公式,d表示圆的直径;圆的概念1.到定点的距离等于定长的点的集合叫做圆。这个定点叫做圆的圆心,通常用字母“o”表示

    生活 2021年10月23日
  • redis两种持久化方式的优缺点是什么

    技术redis两种持久化方式的优缺点是什么这篇文章给大家分享的是有关redis两种持久化方式的优缺点是什么的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。 redis

    攻略 2021年11月20日
  • linux如何操作mysql

    技术linux如何操作mysql这篇文章给大家分享的是有关linux如何操作mysql的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。试着研究openfire,顺道简单研究了一下mysql。wi

    攻略 2021年10月21日
  • Java 线程池中的线程复用是如何实现的

    技术Java 线程池中的线程复用是如何实现的Java 线程池中的线程复用是如何实现的,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。前几天,技术群里有个群

    2021年11月15日
  • C语言是怎样输出唯一的子串

    技术C语言是怎样输出唯一的子串C语言是怎样输出唯一的子串,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。 题目描述给一个字符串,求长度为m的所有不重复的子

    攻略 2021年12月8日