使用SDIFF比较2个文件时出现问题

时间:2013-08-03 06:56:40

标签: bash sdiff

我有一个我目前坚持的模块。我想就此寻求帮助。

假设我有一个包含以下条目的文件:

ABC 123 ...< - 第1列出现在第1列值

CDE 456 ......

DEF 234 ......

ABC 234 ...< - 第2列出现在第1列值

以及包含此条目的另一个文件:

           <-- missing 1st occurence

CDE 234 ......

DEF 456 ......

ABC 346 ...&lt; - 基于第1列值的第二次出现

目前我需要比较两个文件并提出一个输出,说明第二个文件中缺少第二个出现。任务的第一阶段完成(我不确定这是否是处理此问题的正确方法)。首先,我根据第1列的值整理出两个文件。然后我使用&#34; sdiff -s&#34;比较两个排序的文件。我采用这种方法的限制是&#34;排序文件&#34;仅包含数据第1列。

例如:

ABC

ABC

CDE

DEF

这给了我理想的结果。但问题是,我无法弄清楚第二个文件中缺少哪个ABC出现。如果我使用&#34; grep&#34;在第一个文件基于&#34; sdiff -s&#34;的结果,它将给我2个值。

有人可以对此有所了解吗?

感谢。

1 个答案:

答案 0 :(得分:0)

怎么样

sdiff -s <(cut -d' ' -f1 file1) <(cut -d' ' -f1 file2)

(我想,你需要bash版本4+才能使流程重定向工作)