gpt4 book ai didi

perl - *nix : perform set union/intersection/difference of lists

转载 作者:行者123 更新时间:2023-11-29 08:48:58 26 4
gpt4 key购买 nike

我有时需要比较两个文本文件。显然,diff 显示了不同点,它也隐藏了相似点,这就是重点。

假设我想对这些文件做其他比较:集并集、交集和减集,将每一行视为集合中的一个元素。

是否有类似简单的通用实用程序或单行代码可以做到这一点?


例子:

一个.txt

john
mary

b.txt

adam
john

$> set_union a.txt b.txt
john
mary
adam

$> set_intersection a.txt b.txt
john

$> set_difference a.txt b.txt
mary

最佳答案

联盟:sort -u 文件...

路口:sort 文件... | uniq -d

总体差异(仅在其中一个文件中的元素):
sort 文件... | uniq -u

数学差异(元素在其中一个文件中只有一次):
sort 文件... | uinq -u | sort - <(sort -u fileX ) | uniq -d

前两个命令为我提供了所有独特的元素。然后我们将其与我们感兴趣的文件合并。 sort - <(sort -u 的命令分解fileX ) :

-将处理标准输入(即所有唯一元素的列表)。

<(...)运行命令,将输出写入临时文件并将文件路径传递给命令。

所以这给出了 所有 独特元素加上 fileX 中所有独特元素的混合。重复项是仅在 fileX 中的唯一元素。

关于perl - *nix : perform set union/intersection/difference of lists,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8520463/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com