我有两个想要比较的 CSV 文件。第一个看起来像:
aaaaaaaa-fb34-4e3e-aed5-eec78d02d59b,1234
bbbbbbbb-f76a-4a05-bb53-63aba9d03fe2,5678
cccccccc-e351-4d8e-b44a-080f6ccdef7d,9012
第二个看起来像(只有一个字段):
bbbbbbbb-f76a-4a05-bb53-63aba9d03fe2
cccccccc-e351-4d8e-b44a-080f6ccdef7d
我想根据 UUID 比较(使用
comm
等 shell 命令)这两个集合,显示第一个文件中的完整行以及第二个文件中未出现的 UUID。 因此,对于示例数据如上所述,输出应该是
aaaaaaaa-fb34-4e3e-aed5-eec78d02d59b,1234
如果我只有两个 UUID 列表,我可以轻松地与 comm
进行比较,但我不知道如何处理额外的字段。我想我可以切断第二个字段,
comm
,然后循环遍历结果并在原始的双字段集中进行 grep,但这似乎有点低效。使用标准实用程序有更好的方法吗?我也看到了这个问题,但这似乎丢弃了不常见的行/字段。
$ grep -Fvf second.txt first.txt
和示例运行:
aaaaaaaa-fb34-4e3e-aed5-eec78d02d59b,1234