違いの出力について

違いの出力について

私は持っていますfile1.txt

this is the original text  
line2  
line3  
line4  
happy hacking !  

そしてfile2.txt

this is the original text  
line2  
line4  
happy hacking !  
GNU is not UNIX  

そうすれば:diff file1.txt file2.txt私は次を得ます:

3d2  
< line3  
5a5  
> GNU is not UNIX  

出力は通常どのように解釈されますか?<削除という意味のようですが、どういう3d2意味ですか5a5

私がするなら:

$ diff -u file1.txt file2.txt  
--- file1.txt        2013-07-06 17:44:59.180000000 +0200  
+++ file2.txt        2013-07-06 17:39:53.433000000 +0200  
@@ -1,5 +1,5 @@  
 this is the original text  
 line2  
-line3  
 line4  
 happy hacking !  
+GNU is not UNIX  

結果はより明確になった。しかし、その結果はどういう@@ -1,5 +1,5 @@意味ですか?

ベストアンサー1

最初のdiff出力(いわゆる「正規の違い」)の意味は次のとおりです。

<– file1.txt の行を表します。

>– file2.txt の行を表します。

3d25a5影響を受けた行番号と実行された操作を示します。d削除を示し、a追加を示します(c変更を示す)。文字の左側の数字はfile1.txtの行番号、右側の数字はfile2.txtの行番号です。これにより3d2、file1.txtの3行目が削除され、2行目がfile2.txtにあることがわかります(またはより良いことに、削除後の行カウンタは2行目に戻ります)。5a5file1.txtの5行目(以前の操作から行を削除した後は実際には空)で始まり、それが追加され、追加された行がfile2.txtの5行目であることがわかります。

コマンドの出力形式はdiff -u少し異なります(いわゆる「統合diff」形式)。ここではdiff、2つの別々のテキストではなく、1つのテキストとして提供されます。この行の@@ -1,5 +1,5 @@一部は-1,5file1.txtに関連し、一部+1,5はfile2.txtに関連しています。彼らはこれがdifffile1.txtの1行目から始まり、5行の長さのテキストを表示すると言います。 file2.txtでも同様です。diff1行目から始まる5行目が表示されます。

すでに述べたように、2つのファイルの行は一緒に表示されます。

 this is the original text  
 line2  
-line3  
 line4  
 happy hacking !  
+GNU is not UNIX

これは-、file1.txtで削除された行と+追加された行を表します。

おすすめ記事