gpt4 book ai didi

bash - 两个文件夹中的差异文件忽略第一行

转载 作者:行者123 更新时间:2023-12-02 04:08:26 25 4
gpt4 key购买 nike

我有两个要比较的文件文件夹,但我想忽略所有文件中的第一行。我试过了

  diff -Nr <(tail -n +1 folder1/) <(tail -n +1 folder2/) 

但这显然不是正确的方法。

最佳答案

如果您想要忽略的第一行具有可以通过 POSIX 正则表达式匹配的独特格式,那么您可以使用 diff--ignore-matching-lines =... 选项告诉它忽略这些行。

如果做不到这一点,您想要采取的方法可能取决于您的具体要求。您说您“想要比较”这些文件,但如果它支持该功能,您的结果输出需要与您从 diff -Nr 获得的内容准确地匹配并不明显。 (例如,您是否需要 diff 中的行号才能正确识别原始文件中的行号?)

最准确可靠的方法可能如下:

  • 使用 cp --recursive ... 将每个目录复制到新位置。
  • 使用 find -type f -exec sed -i '1 s/^/IGNORE_THIS_LINE 等编辑每个文件的第一行,在前面添加一个类似 IGNORE_THIS_LINE:: 的魔术字符串: :/' '{}' ';'.
  • 使用 diff -Nr --ignore-matching-lines=^IGNORE_THIS_LINE::... 比较结果。
    • 将输出通过管道传输到 sed s/IGNORE_THIS_LINE:://,以便过滤掉任何仍然出现的 IGNORE_THIS_LINE::(由于位于几行不可忽略的差异)。

关于bash - 两个文件夹中的差异文件忽略第一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38172398/

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