【发布时间】:2021-07-09 03:04:52
【问题描述】:
如何区分两个文件但忽略注释字符串之间的所有差异。我想在结果差异中查看 cmets,但没有让工具将 cmets 之间的差异视为真正的差异。
文件1.py
# File 1 code
print(“code”)
print(“same code”)
print(“code”) # comment 1
文件2.py
# File 2 code
print(“different code”)
print(“same code”)
print(“code”) # comment 2
当我比较 file1.py 和 file2.py 时,我希望能够忽略 cmets,但仍将它们打印在 diff 中。也许一些命令,如:
diff -y file1.py file2.py -- magicRegex “#.*”
所需的输出可能如下所示:
#File 1 code # File 2 code
print(“code”) | print(“different code”)
print(“same code”) print(“same code”)
print(“code”) # comment 1 print(“code”) # comment 2
【问题讨论】:
-
有几个关于i的建议:stackoverflow.com/questions/7504059/…
-
@Lenna:简单地删除任何
#.*是没有意义的,因为例如,如果你有一行prog "#" x y,你当然不想删除任何东西, 因为在这种情况下#不表示评论。您的正则表达式不会处理这种情况,只是在#之后清除所有内容。 -
您是否对 Meld 等其他工具持开放态度,或者必须是
diff+ 其他 bash 工具?我认为使用diff+grep+sed这样做是可能的,但很困难。我特别认为使用 bash 工具将 cmets 重新插入到diff -y输出中同时保持美观是很困难的。 -
对其他工具完全开放。将更改问题标题以反映这一点。
标签: diff