タグ付けされた質問 「diff」

diff-2つのファイル間の差異、または2つのディレクトリ内の対応する各ファイルを表示するコマンドラインツール。

4
複数のファイルを差分します。すべてが等しくない場合はtrue
いくつかのファイルがありますが、それらすべてのファイルが同じコンテンツを持っていることを確認したいと思います。 それを確認するためにどのコマンドラインを使用できますか? 使用方法は次のようになります。 $ diffseveral file1 file2 file3 file4 結果: All files equals または Files are not all equals
18 bash  diff 

11
diff出力を色付けする方法は?
Unixファイルを条件付きでフォーマットしたかったのですが、現在diffコマンドに取り組んでおり、diffコマンド出力のテキストをフォーマットできるかどうかを知りたいと思いました。 例: 一致した値は緑色で表示されます。 一致しない値は赤で表示されます。 私は2つのファイルを持っていると仮定file1してfile2、私のコマンドがありますdiff file1 file2。 ここで、出力に5つの不一致が含まれていると仮定して、それらの不一致を赤色で表示する必要があります。UNIXを使用してこれを達成する方法は? 要するに、「不一致の値に対するdiffコマンドの出力の色を赤に変更する」
18 bash  ksh  diff 

2
テキストファイルを減算するUNIXのツール?
セミコロンで区切られた大きなテーブル形式のテキストフィールドで構成される大きなファイルがあります。ソートされています。同じテキストフィールドで構成される小さなファイルがあります。ある時点で、誰かがこのファイルを他のユーザーと連結し、ソートを行って上記の大きなファイルを作成しました。大きなファイルから小さなファイルの行を減算します(つまり、小さなファイルの各行について、一致する文字列が大きなファイルに存在する場合は、大きなファイルのその行を削除します)。 ファイルはおおよそ次のようになります GenericClass1; 1; 2; NA; 3; 4; GenericClass1; 5; 6; NA; 7; 8; GenericClass2; 1; 5; NA; 3; 8; GenericClass2; 2; 6; NA; 4; 1; 等 これを行う簡単な上品な方法はありますか、またはawkを使用する必要がありますか?


1
これはパッチを作成する良い方法ですか?
gcc公式リリースと比較する特定のブランチからパッチを作成したいと思います。そのため、安定版リリースからtarballを展開すると、パッチを適用し、その特定のブランチにあったものと同等のものを取得できます。 パッチを作成する必要があるのはこれが初めてなので、これを行うのは初めてであり、ソフトウェアの非常に重要な部分について話しているので、私の主な関心事はオプションと解析を正しくすることです diff -crB GccStable GccGit > /tmp/fromStabletoBranch.patch これで十分ですか?それを行う最良の方法ですか?
15 diff  patch 

3
Emacsでのディレクトリの比較
私はを試していますがediff-directories、それを正しく使用しているかどうかはわかりません。 Emacs を押すとに2つのディレクトリを指定すると、ドキュメントを読んで、それらを再帰的に比較します。ediff-directories== ただし、押す==と=、コマンドを実行するレベルで記号の付いたフォルダー(2つのフォルダーの内容が同じであることを意味する)のみが取得されます。=フォルダー階層のより深いレベルでどのフォルダーにサインがあるかを確認したい場合は==、各レベルでコマンドを再実行する必要があります。 directory difference buffer(キーボードコマンドでアクセス可能D)のすべての違いを見ることができるように、emacsに葉までずっと再帰的に進むように指示するにはどうすればよいですか? 使用方法に関するチュートリアルediff-directories(公式ドキュメント以外)を知っている人がいれば、非常に興味があります。 また、セッショングループを終了したい(あるレベルのフォルダーの比較)が、より深いレベルのセッションを開いている場合、q(このセッショングループを終了する)を押すと、Emacsはメッセージに文句を言います: このセッショングループにはアクティブなセッションがあります---終了できません サブセッションを1つずつ終了せずにセッショングループを終了するにはどうすればよいですか?
15 emacs  diff 

4
よく似たファイルを保存するためのローリングdiff?
報奨金は、期限が切れる6日に。この質問への回答は、+ 50レピュテーションバウンティの対象となります。 Basjは、この質問に対するより詳細な回答を探しています。典型的な例:backup201901.tar.gz、backup201902.tar.gz、...、backup201912.tar.gzなど」 職場では、mysqlデータベースの夜間ダンプを作成します。日々、データの90〜95%近くが重複しており、時間が経つにつれて増加することを推測します。(この時点で、いくつかはおそらく99%です) これらのダンプでは、1行が1つのmysql INSERTステートメントであるため、唯一の違いは行全体と、ファイル内での順序です。それらをソートした場合、ファイルごとの実際の違いは非常に小さいでしょう。 私は探していましたが、ダンプの出力をソートする方法を見つけていません。sortただし、コマンドを介してパイプできます。次に、同一行の長い長いブロックがあります。 だから私は差分のみを保存する方法を考えています。マスターダンプから始めて、毎晩それと比較することができます。しかし、差分は毎晩大きくなります。または、ローリングdiffを作成することもできますが、これは個々に非常に小さくなりますが、毎晩シリーズ全体のマスターdiffをまとめる必要がある場合、計算に時間がかかるようです。 これは可能ですか?どのツールで? 編集 mysqlバックアップを行う方法を尋ねていません。現時点ではmysqlを忘れてください。ニシンです。私が知りたいのは、一連のファイルから一連のローリングdiffを作成する方法です。毎晩、ファイル(たまたまmysqldumpファイル)を取得します。これは、前のファイルと99%類似しています。はい、すべてをgzipします。しかし、そもそもすべての冗長性を持つことは冗長です。私が本当に必要なのは、前の夜との違いだけです...これは前の夜とわずか1%違います...などです。したがって、私が望んでいるのは、一連の差分を作成する方法です。そのため、毎晩1%だけを保存する必要があります。


3
N-way diffを実行するにはどうすればよいですか?
複数のコマンドの出力をどのように比較しますか?vimdiff最大4つのファイルをサポートできますが、それdiff自体はちょうど2つのファイルをサポートしているようです。 のバリアントで直接可能ですかdiff、すべてのコマンドの出力を一時ファイルに保存し、1つを選択して残りをそれと比較する必要がありますか? 環境: 複数のサーバーで特定のコマンドの出力を確認し、それらすべてが一致するかどうかを確認する必要があります。現時点では、違いが見つかった場合に報告するだけで良いように思えますが、可能であれば、X%サーバーが互いに同意し、Y%が互いに同意します。または、そのサーバーZが奇数です。 4方向のマルチマスターLDAPセットアップがあり、ContextCSN4つすべての値が互いに一致していることを確認したい。 だから今私は: #! /bin/bash for i in {1..4}.ldap do ldapsearch -x -LLL -H ldap://$i -s base -b dc=example,dc=com contextCSN > $i.csn; done set -e for i in {2..4} do diff -q 1.csn $i.csn done そして、スクリプトのエラーコードを確認します。これのためのより良いツールはありますか? Ubuntu 14.04で使用できるすべてのツールを歓迎します。
14 scripting  diff 

12
Linux diffツール:変更されたファイルのリストを作成します
Linuxコマンドラインツールを使用してプログラムで変更されたファイルのリストを作成するにはどうすればよいですか?特定のファイル(デルタ、パッチ)の違いには興味がありません。以前の製品リリースと比較した新しいファイルまたは変更されたファイルのリストが必要です。新しい製品の更新を公開できるように。 更新:diff -qr非常に便利な出力を生成しません。の出力diff -qrも処理する必要があります。より良い方法はありますか?


6
UNIXで行ごとに2つの異なるファイルを比較するにはどうすればよいですか?
File1: 123 234 345 456 File2: 123 234 343 758 期待される出力:File3: TRUE TRUE FALSE FALSE そのため、コードは2つのファイルを比較し、一致する場合は「TRUE」を出力し、一致しない場合は新しいファイルに「FALSE」を出力する必要があります。誰でもこの解決策を提供できますか?

3
diffは、2つのファイルで同じ行を異なると報告します
曲のリストを含む2つのファイルがあります。hdsongs.txtおよびsdsongs.txt すべての曲とテキストファイルへの出力を一覧表示し、diffを実行する簡単なスクリプトを作成しました。ほとんどの場合は正常に機能しますが、スクリプト内の実際のdiffコマンドは、異なる行と同じ行を表示しています。これは実際には複数の行で発生していますが、すべてではありません。 両方のファイルの歌の例を次に示します。 $ grep Apologize \*songs\* hdsongs.txt:Timbaland/Apologize.mp3 sdsongs.txt:Timbaland/Apologize.mp3 私が見ることができる末尾の特殊文字はありません: $ cat -A hdsongs.txt sdsongs.txt | grep Apologize Timbaland/Apologize.mp3$ Timbaland/Apologize.mp3$ diffを実行すると、各ファイルに同じ行が表示されます。しかし、行は同じではありませんか? $ diff hdsongs.txt sdsongs.txt | grep Apologize > Timbaland/Apologize.mp3 < Timbaland/Apologize.mp3 これはここのスレッドに似ています: diffは2つのファイルが異なることを報告しますが、それらは同じです! しかし、これはファイル全体ではなくファイル内の行のためであり、その場合の解像度はこの場合に収まらないようです。 $ diff <(cat -A phonesongsonly.txt) <(cat -A passportsongsonly.txt) | grep Apologize < Timbaland/Apologize.mp3$ > Timbaland/Apologize.mp3$ …
13 diff 

4
大規模なディレクトリと進捗レポートを比較する
あるRAIDから別のRAIDに2,000,000個のファイル(3TB)を再同期しました。 データが損なわれていないことを確認したい。 rsync -c 本当に長い時間がかかります。 diff 何をしているのか見せてくれません。 (a)より高速で、(b)比較中に進捗を示す代替手段はありますか? (私はMacをbrew search diff使っていapgdiff colordiff diffstat diffutils fmdiff libxdiff open-vcdiff podiff rfcdiff vbindiff bsdiff diffpdf diffuse dwdiff kdiff3 ndiff perceptualdiff rdiff-backup tkdiff wdiff ますが、これらのいずれかが仕事をするでしょうか?)

4
`diff -q`の反対を取得できます—内容を印刷せずに同一のファイルを一致させます
ディレクトリに多数のファイルがあり、それらがすべて一意であることを確認したい。簡単にするために、3つのファイルfoo.txtがあるbar.txtとしbaz.txtます。このループを実行すると、それらすべてを互いにチェックします。 $ for f in ./*; do for i in ./*; do diff -q "$f" "$i"; done; done Files bar.txt and baz.txt differ Files bar.txt and foo.txt differ Files baz.txt and bar.txt differ Files baz.txt and foo.txt differ Files foo.txt and bar.txt differ Files foo.txt and baz.txt differ 私が処理したい数百のファイルでは、これはかなり読みにくくなります。ファイル一覧表示する方が良いだろうやる試合をして、私はすぐにリストの上に見て、ファイルは自分自身だけに一致していることを確認することができます。マンページから、私は-sオプションがこれを達成すると思っていたでしょう: $ …
13 bash  diff 

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.