在差异处合并多个文件

在差异处合并多个文件

我正在文本文件上运行脚本,并且想要合并其内容。假设该文件名为“file1”。

文件1:

这是一段文字,哇!

现在运行脚本后我有几个版本。

文件2:

我的<>是一些文字,哇!

文件3:

你的<>是一些文字,哇!

文件4:

这是一些txt<>,哇!

正如您所看到的,一些单词被更改为另一个单词,并且添加了 <>。现在我想合并这些文件,以便在单词发生更改时合并它们:

输出:

我的<>你的<>是一些txt<>,哇!

顺序并不重要;它们只需要合并即可。有没有工具可以让这变得简单?

答案1

我不知道有什么工具可以做到这一点,但编码并不难。这是 perl 的片段:

perl -E 'for $i (1..4) { open ($file,"<","file${i}"); { local $/; @{$words[$i]} = split " ",<$file>; }; close($file); }; for $i (0..scalar(@{$words[1]})-1) { $p=0; for $j (2..4) {  if ($words[1][$i] ne $words[$j][$i]) { print $words[$j][$i]; $p++ } } unless ($p) { print $words[1][$i] }; print " "; } print "\n"'

很多事情都可以改进,如果我必须使用它,我要解决的第一件事就是行尾的额外空间,我可能会将输出单词添加到数组中并使用 join 函数,但我发现实际执行该任务很奇怪。

相关内容