You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Linux Shell高效获取多个TXT文件内容的交集?

多个文本文件内容交集的高效实现方法

你可以用一次合并、排序、统计再加筛选的方式,比逐步合并生成临时文件的方法更高效,不需要中间临时文件,命令如下:

cat 1.txt 2.txt 3.txt 4.txt | sort | uniq -c | awk -v n=4 '$1 == n {print $2}'

命令说明

  • cat 1.txt 2.txt 3.txt 4.txt:将所有目标文件的内容合并输出
  • sort:对所有行排序,让相同内容的行聚集在一起
  • uniq -c:统计每一行的出现次数,输出格式为「次数 内容」
  • awk -v n=4 '$1 == n {print $2}':定义变量n为文件总数(这里是4),筛选出出现次数等于文件总数的行,只输出内容部分

如果你的文件是按规律命名(比如都是数字后缀的txt),可以用*.txt替代具体文件名列表,简化命令:

cat *.txt | sort | uniq -c | awk -v n=4 '$1 == n {print $2}'

示例验证

用你提供的输入文件运行上述命令,会输出1,和预期结果一致。

这个方法相比你原来的逐步合并方式,减少了多次排序和临时文件的生成,处理大文件时效率提升更明显。

内容的提问来源于stack exchange,提问作者seqwait

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 05:30:48