2つのSQLファイルがあり、そのうちの1つold.sql
はnew.sql
。
old.sql
Emp_Id、Name、およびAddressという3つのフィールドを持つテーブルがあり、データが次のようにold.sqlに格納されているとします。
Insert into table1 values (101 ,"a", "xyz");
Insert into table1 values (102 ,"b", "pqr");
その後、「a」アドレス「xyz」を「xyz123」に変更し、そのデータをファイルに保存しましたnew.sql
。ファイルにはnew.sql
次のデータが含まれます。
Insert into table1 values (101 ,"a", "xyz123");
Insert into table1 values (102 ,"b", "pqr");
diff
次のコマンドを使用する場合:
diff old.sql new.sql
行ごとに違いがありますが、更新されたデータ(xyz123など)のみが必要です。
答え1
答え2
あなたは見つけることができますwdiff
このタイプの比較に役立ちます。逐語比較を生成するフロントエンドですdiff
。あなたの例に基づいてデフォルトで作成されます。
Insert into table1 values (101 ,"a", [-"xyz");-] {+"xyz123");+}
Insert into table1 values (102 ,"b", "pqr");
端末機能を使用して、端末の出力をより明確にすることができます(wdiff -t
)。また、-3
変更された単語にのみ出力を制限するオプションもあります。
======================================================================
[-"xyz");-] {+"xyz123");+}
======================================================================
まだwdiffをインストールしていない場合は、wdiffをインストールする必要があります。オペレーティングシステムに適したコマンドを実行sudo apt-get install wdiff
またはsudo dnf install wdiff
実行します。sudo yum install wdiff
答え3
あなたはそれを使用することができます:
diff -u old.sql new.sql |colordiff |diff-highlight
colordiffはUbuntuソフトウェアパッケージです。を使用してインストールできますsudo apt-get install colordiff
。
diff-hight
gitで(バージョン2.9から)。位置しています/usr/share/doc/git/contrib/diff-highlight/diff-highlight
。あなたはあなたとどこかにそれを置くことができます$PATH
。またはとても素敵なプロジェクト。
答え4
私も私の文章を書いた独自のスクリプトこの問題を解決するには、次の方法を使用します。最も長い共通部分修飾アルゴリズム
これが実行される方法です
JLDiff.py a.txt b.txt out.html
結果は赤と緑の色のHTMLです。大きなファイルは処理に時間がかかりますが、これを行うと、1行ずつ最初に確認する必要なく、真の文字による比較が行われます。
この回答は以下でクロスポストされました。ここ。
JLDiffがpypyではるかに速く実行されることがわかりました。