-U của diff thực sự làm gì?


8

Có vẻ như -ucó thể có thêm một đối số số, nhưng tôi không im lặng lấy hướng dẫn,

Nó nói rằng,

  -u, -U NUM, --unified[=NUM]
          output NUM (default 3) lines of unified context

Ai đó nêu tên một ví dụ xin vui lòng?

Tôi không thể tìm thấy một làm việc.

Câu trả lời:



4

Trực tiếp từ bài viết Wikipedia trên diff:

Khác biệt bối cảnh thống nhất ban đầu được phát triển bởi Wayne Davison vào tháng 8 năm 1990 (trong unidiff xuất hiện trong Tập 14 của comp.source.misc). Richard Stallman đã thêm hỗ trợ khác biệt thống nhất vào tiện ích diff của GNU Project một tháng sau đó, và tính năng này đã ra mắt trong GNU diff 1.15, được phát hành vào tháng 1 năm 1991. GNU diff đã khái quát hóa định dạng ngữ cảnh để cho phép định dạng diffs tùy ý.

Định dạng bắt đầu với tiêu đề hai dòng giống như định dạng ngữ cảnh, ngoại trừ tệp gốc có trước "---" và tệp mới có trước "+++". Theo sau đây là một hoặc nhiều khối thay đổi có chứa sự khác biệt dòng trong tệp. Các dòng theo ngữ cảnh không thay đổi được đi trước bởi một ký tự khoảng trắng, các dòng bổ sung được đi trước bởi một dấu cộng và các dòng xóa được đi trước bởi một dấu trừ.

Một hunk bắt đầu với thông tin phạm vi và ngay lập tức được theo sau với các dòng bổ sung, xóa dòng và bất kỳ số lượng các dòng theo ngữ cảnh. Thông tin phạm vi được bao quanh bởi các dấu hiệu kép và kết hợp thành một dòng duy nhất xuất hiện trên hai dòng ở định dạng ngữ cảnh (ở trên). Định dạng của dòng thông tin phạm vi như sau:

@@ -l,s +l,s @@ optional section heading

Sau đó, trong toàn bộ tệp có những thay đổi sẽ được thực hiện, bạn sẽ có những dòng như sau:

-check this dokument. On
+check this document. On

LƯU Ý:-nghĩa là nó đang bị xóa và +có nghĩa là nó sẽ được thêm vào.

Lệnh diff -Ucũng có thể lấy một tham số bổ sung, một số, biểu thị có bao nhiêu dòng văn bản lân cận xung quanh điểm xảy ra sự khác biệt giữa 2 tệp. Điều này rất hữu ích trong việc có được bối cảnh tốt hơn về những gì sự khác biệt thực sự đòi hỏi.

Thí dụ

tập tin1

$ cat file1.txt 
The Rain in Spain by
Servants Poor Professor Higgins!
Poor Professor Higgins! Night and day
He slaves away! Oh, poor Professor Higgins!
All day long On his feet; Up and down until he's numb;
Doesn't rest; Doesn't eat;

tập tin2

$ cat file2.txt 
The Rain in Spain by
added extra line here
Servants Poor Professor Higgins!
Poor Professor Higgins! Night and day
He slaves away! Oh, poor Professor Higgins!
All day long On his feat; Up and down untile he's numb;
Doesn't rest; Doesn't eat;

khác

$ diff -U 2 file1.txt file2.txt 
--- file1.txt   2013-04-26 09:39:13.496835363 -0400
+++ file2.txt   2013-04-26 09:38:04.838299195 -0400
@@ -1,6 +1,7 @@
 The Rain in Spain by
+added extra line here
 Servants Poor Professor Higgins!
 Poor Professor Higgins! Night and day
 He slaves away! Oh, poor Professor Higgins!
-All day long On his feet; Up and down until he's numb;
+All day long On his feat; Up and down untile he's numb;
 Doesn't rest; Doesn't eat;

Xem diff trên wikipedia để biết thêm chi tiết.


2
Tôi nghĩ rằng câu hỏi chính của OP không phải là với chính tiện ích diff mà là việc sử dụng số nào bên cạnh -u trong phiên bản diff của anh ấy.
Bratchley

Cảm ơn @JoelDavis, tôi đã bỏ lỡ số từ trong câu hỏi của anh ấy. Tôi sẽ cập nhật để đề cập đến nó câu trả lời của tôi là tốt.
slm
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.