
テキストファイルからスクリプトを実行しており、その内容をマージしたいと思います。ファイル名が「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"'
多くのことが改善されるかもしれません。それを使用する必要がある場合、最初に変更する必要があるのは行の末尾にある追加のスペースです。おそらく、出力ワードを配列に追加し、結合機能を使用します。実際、奇妙なことをするのは非常に難しいです。