比较不同长度的两个文件之间的共同值(Linux)

     2023-03-24     74

关键词:

【中文标题】比较不同长度的两个文件之间的共同值(Linux)【英文标题】:Comparing Common Values between two files of different length (Linux) 【发布时间】:2021-11-14 06:21:56 【问题描述】:

我比较了两个不同长度的文件,我首先发现了文件 1 中存在但文件 2 中不存在的唯一 ID。

但是,现在我想在文件之间找到共同的唯一值,我已经多次看到使用 comm 命令,但是这些文件的长度不同。

示例

文件 1

2 
4 
6 
8 
10

文件 2:

9
8
7
6
5
4
3
2
1

期望的输出:

2 
4 
6 
8 

为了寻找独特的差异,我使用了以下命令:

awk 'FNR==NR a[$0]++; next !($0 in a)' file1.sorted file2.sorted > diff_values.txt

为了寻找共同值,我尝试使用以下命令,但不完全确定这是否是正确的方法或是否存在任何替代方法:

comm -12 file1.sorted file2.sorted > comm_values.txt

【问题讨论】:

a[$0]++ 中的 ++ 除了占用 CPU 周期和可能的内存之外什么都不做。 【参考方案1】:

使用comm 有很多替代方法,就像在 Unix 中做任何事情有很多替代方法一样,但comm 是专为满足您的要求而设计的工具。

常用线:

$ comm -12 <(sort file1) <(sort file2)
2
4
6
8

不同的行:

$ comm -3 <(sort file1) <(sort file2)
        1
10
        3
        5
        7
        9

仅在第一个文件中的行:

$ comm -23 <(sort file1) <(sort file2)
10

仅在第二个文件中的行:

$ comm -13 <(sort file1) <(sort file2)
1
3
5
7
9

如果您想要替代方案,以下是您可以考虑并适应您想做的任何事情的众多替代脚本中的一些:

$ awk 'NR==FNRa[$0]; c[$0]; next b[$0]; c[$0] ENDfor (i in c) if ((i in a) && (i in b)) print i' file1 file2
2
4
6
8

$ awk 'NR==FNRa[$0]; c[$0]; next b[$0]; c[$0] ENDfor (i in c) if (!((i in a) && (i in b))) print i' file1 file2
1
3
5
7
9
10

$ awk 'NR==FNRa[$0]; c[$0]; next b[$0]; c[$0] ENDfor (i in c) if ((i in a) && !(i in b)) print i' file1 file2
10

$ awk 'NR==FNRa[$0]; c[$0]; next b[$0]; c[$0] ENDfor (i in c) if (!(i in a) && (i in b)) print i' file1 file2
1
3
5
7
9

【讨论】:

感谢您提供如此详细的答案@Ed 绝对有效并涵盖了我需要的内容

linux比较两个文件的不同(6/21)(代码片段)

cmp命令:比较任意两个类型的文件,且吧结果输出到标准输出,默认文件相同不输出,不同的文件输出差异必要参数-c显示不同的信息-l列出所有的不同信息-s错误信息不提示 选择参数-i<字符数>指定字符数目-v显示版本信... 查看详情

查找两个数组之间的共同最小值

】查找两个数组之间的共同最小值【英文标题】:Findingcommonminimumvaluebetweentwoarrays【发布时间】:2015-10-2723:59:45【问题描述】:我正在处理Javascript中的一个问题。寻找两个数组之间的共同最小值。但是,有人告诉我这可能不适用... 查看详情

使用pyspark查找csv文件中两个相同值之间不同值的计数

】使用pyspark查找csv文件中两个相同值之间不同值的计数【英文标题】:Findcountofdistinctvaluesbetweentwosamevaluesinacsvfileusingpyspark【发布时间】:2019-04-1906:59:41【问题描述】:我正在使用pyspark来处理超过50gb的大型CSV文件。现在我需要... 查看详情

如何用 NaN 填充两个向量之间的差异以使长度相等?

...2021-01-0502:12:59【问题描述】:我正在寻找一种快速方法来比较两个不同长度的向量,并用NaN值填充较短数组的缺失位置。例子:a=[209020912092209320942095209620972098209921002 查看详情

如何将两个不同数据库(MySQL、SQL SERVER)之间的 TEXT 字段与哈希值进行比较?

...不同数据库(MySQL、SQLSERVER)之间的TEXT字段与哈希值进行比较?【英文标题】:HowdoIcompareaTEXTfieldbetweentwodifferentdatabases(MySQL,SQLSERVER)withahash?【发布时间】:2021-10-1523:36:19【问题描述】:我正在尝试快速比较两个独立应用程序中的... 查看详情

从两个不同的类型数组中找出共同值

】从两个不同的类型数组中找出共同值【英文标题】:FindoutcommonvaluefromtwodifferentTypeArray【发布时间】:2021-11-0609:51:29【问题描述】:我有两个Array具有不同的数据类型假设Array1是String的[String]数组假设数组2是Struct的[CustomObjects]数... 查看详情

按列和值比较两个 csv 文件并显示不同值的行号 [关闭]

】按列和值比较两个csv文件并显示不同值的行号[关闭]【英文标题】:Comparingtwocsvfilesbycolumnandvalueanddisplayinglinenumbersofdifferingvalues[closed]【发布时间】:2016-07-0611:47:40【问题描述】:我正在为两个包含列和对应值的csv文件做一个比... 查看详情

linux命令比较两个文件

1、cmp命令  通过比较字节比较文件例:  设置两个不同的文件,通过cmp命令来执行   在屏幕上会显示第几行不同 2、diff一行一行的比较两个文件 如:会溴铵是具体哪些行不同 3、vimdiff 会在屏幕上显示... 查看详情

linux下比较两个文本文件的不同——diff命令

1>Diff命令的功能Linux中Diff命令的功能为逐行比较两个文本文件,列出其不同之处。它对给出的文件进行系统的检查,并显示出两个文件中所有不同的行,不要求事先对文件进行排序。2>语法diff[options]file1file2该命令告诉用户... 查看详情

比较两个字符串并返回它们之间的共同字符?(代码片段)

我从这开始:vargoalWord="";//thisanduserWordarepopulatedwithwordsfromanarrayIhaven'tlistedherevaruserWord="";functioncountCorrectCharacters(userWord,goalWord)varcompareNum=0;varcommon=document.createElemen 查看详情

在 txt 文件中的不同列中取两个特定值之间的行 [关闭]

】在txt文件中的不同列中取两个特定值之间的行[关闭]【英文标题】:Takelinesbetweentwospecificvaluesfromdifferentcolumnsinatxtfile[closed]【发布时间】:2021-06-2810:22:31【问题描述】:如何从.t​​xt文件中获取不同列的值之间包含的行?我有... 查看详情

linux-diff--比较两个文件并输出不同之处

...数][文件1或目录1][文件2或目录2]2.命令功能:diff命令能比较单个文件或者目录内容。如果指定比较的是文件,则只有当输入为文本文件时才有效。以逐行的方式,比较文本文件的异同处。如果指定比较的是目录的的时候,diff命... 查看详情

两个linux之间拷贝文件及文件夹

...用于文件copy的命令。一个是cp,一个是scp,可是他们略有不同,cp主要是用于在同一台电脑上,在不同的文件夹之间来回copy文件scp主要是在不同的Linux系统之间来回copy文件。scp即securitycp,带有安全性的复制。在两台linux机之间拷... 查看详情

diff(patch):比较两个文件之间的区别(补丁)

...加上-b选项,将文件自动备份为以.orig为后缀的文件patch-b比较文件diff文件patch:将diff文件中的相同和与之不同信息恢复,并命名为“比较文件” 查看详情

使用 Python 减去/比较两个音频文件之间的差异

】使用Python减去/比较两个音频文件之间的差异【英文标题】:Subtract/comparedifferencesbetweentwoaudiofilesusingPython【发布时间】:2021-07-1923:35:39【问题描述】:我的目标是获取两个长度相同的.wav文件,一个带有噪声+语音的原始文件,... 查看详情

显示来自两个不同表的两列之间的差异(比较表)

】显示来自两个不同表的两列之间的差异(比较表)【英文标题】:Showthedifferencebetweentwocolumnsfromtwodifferenttables(comparisontable)【发布时间】:2015-04-0620:02:00【问题描述】:我有两个具有相同结构和几乎相同内容的表。主要区别在... 查看详情

如何在同一分支上的两个不同提交之间区分同一文件?

...同一分支(例如master)上的两个不同提交(不连续)之间比较同一文件?我正在寻找一种比较功能,例如VisualSourceSafe(VSS)或TeamFoundat 查看详情

使用python返回excel中两个不同文件中两列之间的差异

...2将不断更新并在列中随机添加新值。我如何编写脚本来比较两列并找到差异,而不管新值放在file2中 查看详情