【问题标题】:How to find the difference between multiple files如何找到多个文件之间的差异
【发布时间】:2025-12-05 21:30:01
【问题描述】:

我在 20 台 linux 服务器上安装了一个应用程序。该应用程序包含多个配置文件,如。

/etc/config_1/config_1_1.cfg
/etc/config_1/config_1_2.cfg
/etc/config_2/config_2_1.cfg
/etc/config_2/config_2_2.cfg
/etc/config_3/config_3.cfg

我将在所有服务器中拥有所有这些配置文件。现在,我想比较一下所有服务器中的配置文件之间的差异。

例如: 比较 server1、server2 和 server3 等之间的/etc/config_1/config_1_1.cfg

【问题讨论】:

    标签: linux file unix compare diff


    【解决方案1】:

    从命令行:

    vim -d /etc/config_1/config_1_1.cfg /etc/config_1/config_1_2.cfg /etc/config_2/config_2_1.cfg /etc/config_2/config_2_2.cfg /etc/config_3/config_3.cfg

    【讨论】:

    • 我希望 vim -d 只适用于 4 个文件,我必须比较 20 个文件。
    • 我从未有过比较20个文件的用例,不过你可以试试。在这种情况下,您很可能需要一个宽屏幕来容纳在一个窗口中打开的 20 个视图,但从技术上讲,我不希望 VIM 有一些限制来处理这个问题。
    【解决方案2】:

    当你只对值感兴趣时,你可以这样做

    grep "." allfiles | sed 's/^\([^:]*\):\(.*\)/\2 : \1/' | sort
    

    【讨论】:

      【解决方案3】:

      首先,您需要将相同位置的文件收集起来更容易并执行以下命令:

      diffuse x.cfg y.cfg
      

      这将使您能够突出差异

      【讨论】:

        【解决方案4】:

        使用文件比较工具。

        【讨论】:

        • 你能推荐一些可以一次比较20个文件的工具