2つのファイルをdiff-edして取得しました
1c1
< 1
---
> 1
両方のファイルには「1」のみが含まれていました。これはどう違いますか?
1行目:a
は追加を、d
は削除を、c
は変更を意味します。元のファイルの行番号はこれらの文字の前に表示され、変更されたファイルの行番号は文字の後に表示されます。
2行目:<
の行はファイル1からのものであり、ファイル2とは異なります。
3行目は仕切りです。
4行目:>
の行はファイル2からのもので、ファイル1とは異なります。
(=
が表示される場合、両方のファイルで行が同じであることを意味します)
そして、あなたの問題は空白または人間が読めない他の文字かもしれません:それらも違いを引き起こします。
出力を操作するためのオプションがいくつかあります。
例:
rinzwind @ discworld:〜$ more 1 test test2 test3 rinzwind @ discworld:〜$ more 2 test test2 test3
コンテキスト形式:
rinzwind @ discworld:〜$ diff -c 1 2 *** 1 2011-08-13 17:05:40.433966684 +0200 --- 2 2011-08- 13 17:11:24.369966629 +0200 *************** *** 1,3 **** test ! test2 test3 --- 1,3 ---- test ! test2 test3
「!」 2つのファイルで対応する行間の変更を表します。 「+」は行の追加を表し、空白スペースは変更されていない行を表します。パッチの先頭には、フルパスとタイムスタンプを含むファイル情報があります。各ハンクの先頭には、ファイルの対応する変更に適用される行番号があります。 3つのアスタリスクのセットの間に表示される番号範囲は元のファイルに適用され、3つのダッシュのセットは新しいファイルに適用されます。ハンク範囲は、それぞれのファイルの開始行番号と終了行番号を指定します。
統一フォーマットに関するLekensteynのコメントを拡張:
rinzwind @ discworld:〜$ diff -u 1 2 --- 1 2011-08-13 17:05:40.433966684 +0200 +++ 2 2011-08- 13 17:11:24.369966629 +0200 @@ -1,3 +1,3 @@ test -test2 + test2 test3
形式は、元のファイルの前に「---」が付き、新しいファイルの前に「+++」が付いていることを除いて、コンテキスト形式と同じ2行のヘッダーで始まります。これに続くのは、ファイル内の行の違いを含む1つ以上の変更ハンクです。変更されていないコンテキスト行の前にはスペース文字が、追加行の前にはプラス記号が、削除行の前にはマイナス記号が付いています。
いくつかの便利なオプション:
-b
空白の量の変更を無視します。
-w
すべての空白を無視します。
-B
すべての空白行を無視します。
-y
は2列で出力されます。
od(8進ダンプ)は、印刷できない文字を含むファイルを比較するときに便利です(特に、diffが "バイナリ"であると判断したため、違いがあることだけがわかります)。
次の例では、元のファイルのようなファイルのペアを作成し、元の出力で差分を作成します。次に、いくつかの異なる「od」出力でdiffを実行します。
$ エコー1> 1
$ echo "1"> 2
$ diff 1 2
1c1
< 1
- ---
> 1
$ od -c 1> 1.od
$ od -c 2> 2.od
$ diff 1.od 2.od
1,2c1,2
< 0000000 1 \n
< 0000002
---
> 0000000 1 \n
> 0000003
$ od -Ax -c -t x1 1> 1.od
$ od -Ax -c -t x1 2> 2.od
$ diff 1.od 2.od
1,3c1,3
< 000000 1 \n
< 31 0a
< 000002
---
> 000000 1 \n
> 31 20 0a
> 000003
私は同じ問題を抱えていたので、解決策を見つけたので、コマンドを使用してください:
dos2unix
<file1> <file2>
それらの1つはdos/windows形式で、もう1つはUNIX形式です
私がこれをした後、差分はすべて良かったです!
http://www.gnu.org/software/diffutils/manual/html_node/Detailed-Unified.html#Detailed-Unified
上記のリンクは、より簡潔で明確な説明を提供します。
これが空白文字を見つけるのに役立つかどうかはわかりませんが、違いを見つけるには便利です: http://www.gnu.org/software/wdiff/