我正在文本文件上运行脚本,并且想要合并其内容。假设该文件名为“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 函数,但我发现实际执行该任务很奇怪。