当前位置: 首页 > 知识库问答 >
问题:

忽略git diff中匹配字符串的更改

鲁鹏
2023-03-14

这些变化都是形式上的

-                       "main()",
+                       OOMPH_CURRENT_FUNCTION,

其中“main()”可以是任何函数的名称。我想生成不是这种形式的所有变化的差异。

git diff的-g和-s选项非常接近--它们查找与字符串或正则表达式匹配的更改。

git diff -G '^((?!OOMPH_CURRENT_FUNCTION).)*$'
fatal: invalid log-grep regex: Invalid preceding regular expression

我还注意到,标准unix diff有-I选项来“忽略所有行都匹配re的更改”。但是我找不到用unix diff工具替换Git自己的diff的正确方法。

共有1个答案

姜凯风
2023-03-14

尝试以下操作:

$ git diff > full_diff.txt
$ git diff -G "your pattern" > matching_diff.txt

然后您可以像下面这样比较这两者:

$ diff matching_diff.txt full_diff.txt

如果所有更改都与模式匹配,full_diff.txtmatching_diff.txt将是相同的,最后一个diff命令将不会返回任何内容。

diff <(git diff -G "your pattern") <(git diff)  # works with other diff tools too
 类似资料:
  • 这里有2个测量: 正如您所见,比较两个匹配的字符串比比较两个大小相同但不匹配的字符串要快。这是非常令人不安的:在字符串比较期间,我认为python是逐字符测试字符串的,所以应该比更长,因为它需要对1进行4次测试才能进行不匹配的比较。可能比较是基于哈希的,但在这种情况下,两种比较的计时应该相同。 你知道为什么吗?

  • 问题 你想要匹配两个或多个字符串。 解决方案 计算把一个字符串转换成另一个字符串所需的编辑距离或操作数。 levenshtein = (str1, str2) -> l1 = str1.length l2 = str2.length prevDist = [0..l2] nextDist = [0..l2] for i in [1..l1] by 1

  • 我正在尝试比较这样的字符串: 因为我需要转义通配符,例如 问题: 有没有任何powershell函数可以忽略通配符/regex查找子字符串? 非常感谢。

  • 问题内容: 忽略大小写,比较Python中字符串的最简单方法是什么? 当然可以做到(str1.lower()<= str2.lower())等,但这会创建两个附加的临时字符串(明显的alloc / gc开销)。 我想我正在寻找一个等效于C的stricmp()。 [请求更多上下文,所以我将用一个简单的示例进行演示:] 假设您要排序一个完整的字符串列表。您只需执行List.sort()。这是O(n *

  • 我有这样一个字符串: “#影响@John@Me Lorem ipsum door sit amet,奉献给精英们,让他们暂时参与劳动和生活。但是,在最低限度上,我们需要一个实验室来进行日常工作。两人或两人在一个无教区的房间里互相指责。除偶尔因疏忽而死亡外,还必须因工作原因而受到伤害 我需要以两种方式“拆分”,删除第一个单词,因为它以“#”开头(我可以做/已经做过),第二个我想不出来-我需要从字符串

  • 本文向大家介绍Python中的DI字符串匹配,包括了Python中的DI字符串匹配的使用技巧和注意事项,需要的朋友参考一下 假设我们有一个仅包含“ I”(表示增加)或“ D”(表示减少)的字符串S,令N = S的大小。我们必须返回[0,1,... ,N]使得对于范围0,...,N-1中的所有i- 如果S [i]为“ I”,则A [i] <A [i + 1] 否则,当S [i]为“ D”时,则A [