私は持っています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 の行を表します。
3d2
5a5
影響を受けた行番号と実行された操作を示します。d
削除を示し、a
追加を示します(c
変更を示す)。文字の左側の数字はfile1.txtの行番号、右側の数字はfile2.txtの行番号です。これにより3d2
、file1.txtの3行目が削除され、2行目がfile2.txtにあることがわかります(またはより良いことに、削除後の行カウンタは2行目に戻ります)。5a5
file1.txtの5行目(以前の操作から行を削除した後は実際には空)で始まり、それが追加され、追加された行がfile2.txtの5行目であることがわかります。
コマンドの出力形式はdiff -u
少し異なります(いわゆる「統合diff」形式)。ここではdiff
、2つの別々のテキストではなく、1つのテキストとして提供されます。この行の@@ -1,5 +1,5 @@
一部は-1,5
file1.txtに関連し、一部+1,5
はfile2.txtに関連しています。彼らはこれがdiff
file1.txtの1行目から始まり、5行の長さのテキストを表示すると言います。 file2.txtでも同様です。diff
1行目から始まる5行目が表示されます。
すでに述べたように、2つのファイルの行は一緒に表示されます。
this is the original text
line2
-line3
line4
happy hacking !
+GNU is not UNIX
これは-
、file1.txtで削除された行と+
追加された行を表します。