当前位置: 首页 > news >正文

Shell Daily 2025-12-27: 集合运算 (Comm)

Shell Daily 2025-12-27: 集合运算 (Comm)

处理文本数据时,我们经常遇到这种需求:给你两份名单(比如 all_hosts.txtpatched_hosts.txt),请迅速找出哪些主机还没打补丁(即在 A 中但不在 B 中)。

手写 Python 脚本或者用复杂的 grep -v 循环都太慢了。Shell 哲学里有一个专门处理“集合运算”的神器——comm

怎么用

comm 逐行比较两个已排序的文件,默认输出三列:

  1. 仅在文件 A 的行
  2. 仅在文件 B 的行
  3. A 和 B 共有的行

通过参数 -1, -2, -3 可以屏蔽掉对应的列,从而组合出交集、差集。

  • 语法comm [options] file1 file2
  • 关键前提:输入的两个文件必须先经过 sort 排序,否则结果不准确。
  • 兼容性POSIX 通用标准。所有 Unix-like 系统标配。

适用场景

  • 白名单过滤:从全量日志中剔除已知合法的 IP 列表。
  • 版本比对:快速找出两个配置文件的共同配置项或差异项。

示例 1:找出未完成的任务 (差集 A - B)

假设 total.txt 是总任务,finished.txt 是已完成任务。我们要找出剩下的任务:

# 这里的逻辑是:
# -2 屏蔽“仅在 finished.txt”的(没意义)
# -3 屏蔽“两者都有”的(已完成的)
# 剩下的就是 -23:仅在 total.txt 出现的(未完成的)
comm -23 sorted_total.txt sorted_finished.txt

示例 2:找出共同好友 (交集 A ∩ B)

找出两个用户关注列表里的共同关注者:

# -1 屏蔽 user_a 独有的
# -2 屏蔽 user_b 独有的
# 剩下的 -12 就是两者共有的
comm -12 user_a_follows.txt user_b_follows.txt

(注:配合之前讲的进程替换 <(...),你可以直接写 comm -23 <(sort A) <(sort B),连中间文件都不用存,非常丝滑。)

http://www.gsyq.cn/news/163881.html

相关文章:

  • Open-AutoGLM架构设计全揭秘(20年AI专家亲述底层逻辑)
  • 2025天津集装箱租赁厂家口碑排行榜,优质直销服务大揭秘,集成房屋设计/箱式房/网红集装箱,集装箱租赁制造厂推荐排行榜单 - 品牌推荐师
  • 2025年AI大模型催生的30+新兴岗位全解析,助你抢占AI风口
  • 【大模型开发必备】MCP、ANP、A2A全解析:一文搞懂AI智能体三大连接协议,让你的Agent不再“社恐“!
  • 爬取电影数据并保存至csv文件
  • 震惊!企业AI落地难?Agentic AI Stack三层九阶模型来救场,代码小白也能秒懂!
  • vLLM集成Open-AutoGLM全记录(业界首次深度揭秘)
  • 为什么顶尖团队都在关注Open-AutoGLM?(背后隐藏的4大技术壁垒)
  • AI Agent穿针引线:大模型时代工作流、业务流程与智能体的大融合,开发人员必看
  • Open-AutoGLM遇上Windows系统:常见报错解析与实战避坑手册
  • 2025口碑好的微通风窗户生产厂家TOP5权威推荐 - 工业设备
  • Java小白面试实录:从Spring Boot到微服务的技术点解析
  • 2025年新疆汽车托运公司权威推荐榜单:二手车托运/火车托运汽车/轿车托运源头服务商精选 - 品牌推荐官
  • AI Agent卡壳?不是模型不行,而是数据没准备好!AI-ready data全攻略
  • 【Open-AutoGLM下载提速全攻略】:揭秘5大卡顿根源与高效解决方案
  • 大模型推理黑盒揭开,Open-AutoGLM的3大核心机制你了解吗?
  • 如何用TensorFlow优化城市交通信号灯?
  • daemon not running; starting now at tcp5037解决
  • 城市仿真软件:MATSim_(14).MATSim社区与支持资源
  • 毕业季 “论文搭子” 大赏:这八款工具,承包你从选题到答辩的全流程
  • 使用TensorFlow进行心律失常检测研究
  • Open-AutoGLM为何突然爆火?背后隐藏的6个技术真相
  • 手机变身AI大脑:Open-AutoGLM本地化部署全流程详解
  • 大模型编程革命!从“独行侠“到“团队作战“,一文搞懂AI智能体架构演进,小白程序员必看!
  • Open-AutoGLM下载慢如蜗牛(背后隐藏的4个技术陷阱曝光)
  • BP神经网络手写数字/字母识别 matlab代码 数字或者字母 有数据集训练 bp神经网络训练...
  • 一文彻底厘清:AI Agent、Agentic Workflow与Agentic AI(附6篇核心论文)
  • 文献综述不用 “啃文献到吐”:paperzz,让毕业季的 “文献大山” 变 “轻量级作业”
  • Linux平台Open-AutoGLM部署全流程解析(含GPU加速配置细节)
  • 三轴剪切试验的数值模拟就像给土体做CT扫描,只不过我们用的是代码和本构模型。这次用FLAC3D6.0折腾邓肯张模型,整个过程像在玩一个参数化的电子积木游戏