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

如何在Bash中对比两个rpm包名列表文件的内容是否一致

Bash下对比两个rpm包列表文件的实现方案

1. 直接对比(要求行顺序完全一致)

如果你的两个列表行排序规则一致,需要校验内容+顺序都完全相同,直接使用diff命令即可:

  • 快速判断是否完全一致,不输出详细差异:
    diff -q rpmlist.txt newlist.txt
    执行后无任何输出代表两个文件内容完全一致;如果输出Files rpmlist.txt and newlist.txt differ则代表内容存在差异。
  • 输出详细差异内容:
    diff rpmlist.txt newlist.txt
    针对你给出的示例文件,执行后输出结果如下:

    1c1
    < bash-4.4-9.10.1_x86_64

    bash-5.4-9.10.1_x86_64
    3c3
    < bison-3.0.4-1.268_x86_64


    bison-6.0.4-1.268_x86_64
    其中<开头的行是仅存在于rpmlist.txt的内容,>开头的行是仅存在于newlist.txt的内容


2. 忽略行顺序对比(仅校验内容集合是否一致)

如果两个列表的行顺序可能不同,只需要判断所有行的集合完全匹配,先对两个文件内容排序后再对比即可:

  • 快速判断:
    diff -q <(sort rpmlist.txt) <(sort newlist.txt)
  • 输出详细差异:
    diff <(sort rpmlist.txt) <(sort newlist.txt)

3. 直观的并排差异展示

如果想要左右分栏更清晰地查看对应行的差异,使用sdiff命令:
sdiff rpmlist.txt newlist.txt
针对示例文件的输出效果:

bash-4.4-9.10.1_x86_64 | bash-5.4-9.10.1_x86_64
binutils-2.32-7.8.1_x86_64 binutils-2.32-7.8.1_x86_64
bison-3.0.4-1.268_x86_64 | bison-6.0.4-1.268_x86_64
中间带|的行代表两个文件对应行内容存在差异,无特殊符号的行代表内容完全一致。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 19:39:03