2つのファイルを比較し、すべての違いをマーカーに置き換えて3番目のファイルを生成する方法は?

2つのファイルを比較し、すべての違いをマーカーに置き換えて3番目のファイルを生成する方法は?

私が探しているものはいつものようなものです違いファイルAとBの間にあるがAとBの共通の内容を含むが違いも含むファイルCを印刷します(以下に示すように、いくつかのトークンに置き換えられます。たとえば、§§§§)。

ファイルA:

brown fox 
lazy dog 
both moving
1
2
3

ファイルB:

RED fox 
lazy dog 
OUCH, GONE 
ARE, BACK
1
3

生成されたファイルC:

§§§ fox 
lazy dog
§§§§§§§§§§
§§§§§§§§§
1
§
3

私は言うことができた違い半分のソリューションを実行する方法違いAB-tyd:

brown fox                                                       |  RED fox 
lazy dog                                                           lazy dog 
both moving                                                     |  OUCH, GONE 
                                                                >  ARE, BACK
1                                                                  1
2                                                               <
3                                                                  3

しかし、熱間の直接比較は依然として必要である。各単語を行とフィードとして扱うことができます。違いつまり、いくつかの正規表現コマンドを使用して比較して置き換えます。ライン内の違いを考慮した比較を実行できるいくつかのソフトウェア(Intellij Idea、Overleafなど)があるため、これを行う標準的な方法があると確信しています。 ここに画像の説明を入力してください。

図に示すように、単語境界としてのスペースは必ずしも関連しているわけではありません。

別の部分的な解決策は、以下を使用することです。wdiffba -n:

[-RED-]{+brown+} fox 
lazy dog 
[-OUCH, GONE -]
[-ARE, BACK-] 
{+both moving+}
1
{+2+}
3

ベストアンサー1

おすすめ記事