自动执行目录差异,同时忽略文件中的某些特定行

2024-09-29 06:26:57 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要比较两个目录,并产生某种结构化输出(文本文件很好)的差异。也就是说,输出可能如下所示:

file1 exists only in directory2
file2 exists only in directory1
file3 is different between directory1 and directory2

我不在乎格式,只要有信息就行。第二个要求是,我需要能够在区分两个文件时忽略某些字符序列。Araxis Merge有这样的能力:您可以输入一个正则表达式,并且任何文件的唯一区别是字符序列与该正则表达式匹配,那么它将被报告为完全相同。在

这将使Araxis Merge成为一个很好的候选者,但是,到目前为止,我还没有找到任何方法来生成diff.的结构化输出,即使在启动时也是如此控制台比较.exe使用命令行argumetns,它只打开一个araxisgui窗口,显示差异。在

那么,以下两种情况是否存在?在

  • 一种让Araxis Merge将diff结果打印到文本文件的方法?在
  • 另一个在忽略某个字符的情况下执行diff的实用程序 序列,并产生结构化输出?在

如果此类实用程序作为Python的模块或插件存在,则会获得额外的学分。请记住,这必须完全通过命令行/python脚本完成-无需gui。在


Tags: 文件方法inonlyexistsdiff序列差异
1条回答
网友
1楼 · 发布于 2024-09-29 06:26:57

在某种程度上,普通的diff命令可以做到这一点,即比较目录内容并忽略与特定regex模式匹配的更改(使用-I选项)。在

来自man bash

-I regexp
      Ignore changes that just insert or delete lines that match  regexp.

快速演示:

^{pr2}$

相关问题 更多 >