Mesclar vários arquivos nas diferenças

2

Estou executando scripts em um arquivo de texto e quero mesclar seu conteúdo. Digamos que o arquivo seja chamado de "file1".

arquivo1:

This is some text, wow!

Agora tenho poucas versões depois de executar scripts.

arquivo2:

My<> is some text, wow!

arquivo3:

Yours<> is some text, wow!

arquivo4:

This is some txt<>, wow!

Como você pode ver, algumas palavras são alteradas para outra e temos < > adicionado. Agora quero mesclar esses arquivos, para que as palavras sejam mescladas se forem alteradas:

Saída:

My<>Yours<> is some txt<>, wow!

O pedido realmente não importa; eles só precisam ser mesclados. Existe alguma ferramenta que possa facilitar isso?

    
por MatthewRock 07.09.2016 / 15:24

1 resposta

3

Eu não conheço nenhuma ferramenta que faria isso, mas não é difícil codificar. Aqui está um trecho de 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"'

Muitas coisas poderiam ser melhoradas, a primeira coisa que eu resolveria se tivesse que usá-la seria o espaço extra no final da linha, eu provavelmente adicionaria as palavras de saída a uma matriz e usaria a função de junção , mas acho estranha a tarefa de realmente implementar isso.

    
por 07.09.2016 / 17:09