【发布时间】:2014-08-18 06:07:25
【问题描述】:
我正在尝试编写一个 Perl 脚本来执行以下操作: 比较来自不同源目录的两个同名文件,含义:
diff source_dir_1/file_1 source_dir_2/files_2
对于 file_2 中的每个更改行(与 file_1 相比),它将在第三个文件 source_dir_3/file_3 中找到 file_1 中的行(在 file_2 中已更改),并将此行替换为 file_2 中的行。
例如,对于:
file_1:
我的名字是沙哈尔
你好世界
很高兴认识
file_2
我的名字是沙哈尔
再见世界
很高兴认识
file_3:
这条线可以不同
你好世界
很高兴认识
生成的 file_3 将是:
file_3_after_script:
这条线可以不同
再见世界
很高兴认识
我在编写它时遇到问题,因为有时 file_1 中的一行会被 file_2 中的几行替换,
你对我应该如何解决这个问题有什么建议吗?
【问题讨论】:
-
您的描述不清楚。 file_1 和 file_2 中的第一行相同,但您仍将其替换为 line_3 中的行。
-
您可能会发现Algorithm::Diff 很有用。
-
听起来像是three way merge 问题。试试google,看看问题是否已经用其他工具解决了。