Diff

使用切換行區分兩個文件的結果說兩次失去同一行

  • July 28, 2014

我試圖理解兩個文件上的 linux diff 命令,它們的行只是彼此的排列,但無法理解它生成的輸出。考慮以下三個命令:

[myPrompt]$ cat file1
apples
oranges
[myPrompt]$ cat file2 
oranges
apples
[myPrompt]$ diff file1 file2
1d0
< apples
2a2
> apples

有人可以解釋一下 diff 的上述神秘輸出嗎?

  1. 為什麼輸出中根本沒有提到“橙子”?
  2. 是什麼1d0意思2a2

從這個答案中了解到:

“<”表示file2中缺少該行,“>”表示file1中缺少該行

但這並不能解釋為什麼輸出中缺少橙子。

要理解報告,請記住這diff是規定性的,描述需要對第一個文件 ( file1) 進行哪些更改以使其與第二個文件 ( file2) 相同。

具體來說,din1d0表示刪除ain2a2表示添加

因此:

  • 1d0表示必須刪除file1( apples) 中的第 1 行。0in表示如果它們沒有被刪除1d0,第 0 行是它們將出現在第二個文件 ( ) 中的位置。file2這意味著當更改file2file1(向後)file1在第 0 行之後追加第 1 行時file2
  • 2a2``oranges表示將第二行 ( )附加file2到現在的第二行file1(刪除中的第一行後file1oranges切換到第 1 行)

引用自:https://unix.stackexchange.com/questions/146521