-2

在比较文件时,我尝试通过 sed 命令和 kdiff3 忽略匹配以下正则表达式的行:

sed 's/^\*\*.*//g'

sed 命令在命令行中工作(它删除以 ** 开头的行),但是当在 kdiff3 中使用时,它完全忽略命令行 - 带有模式的行仍然存在并且不会被忽略。

故障排除措施:

  • 尝试在 sed 命令中将 ' 更改为 " - 无效
  • 在没有任何正则表达式的情况下尝试了更简单的替换 - 没有效果
  • 尝试使用 perl 而不是 sed ( perl -p -e 's/\*.*//g') - 没有效果。

我使用的是 RedHat Linux,kdiff 版本是 0.9.97

输入示例:

***Timestamp 2017-05-31 03:00:13.159***
***作为 dashwoods 做的四肢方向存在。获得玛丽安领导的欢迎受到冒犯,但提供 ***
了六次狂喜。传达完报完结的哦处。两人确实受尽远见

***Timestamp 2017-05-31 03:00:13.585 传达***
***结束报纸狂喜哦。两个确实遭受了远远超出以前合理的 ***
瓷砖说腐烂破坏现在墙壁意味着房子。我的先生感兴趣的想法被过滤掉了。晚会音乐剧除了住在你们我的。失去山,他将继续前进。增加足够

在终端中使用 sed 后的输出:

六狂喜。传达完报完结的哦处。两人确实受尽远见

瓷砖说腐烂破坏现在墙壁意味着房子。我的先生感兴趣的想法被过滤掉了。晚会音乐剧除了住在你们我的。失去山,他将继续前进。增加足够

kdiff3 中的配置

4

2 回答 2

0

尝试grep在您的以下说明中使用Preprocessor Command

 grep "^[^*]"
于 2017-05-31T15:04:26.943 回答
0

我没有设法使用 kdiff 忽略这些行,但是 meld 使用以下 regex 就可以了\*\*.*。我希望这对正在寻找相同功能的人有所帮助:)

于 2017-06-02T08:22:09.113 回答