Lệnh diff3 trong Linux

Giới thiệu

Trong lab này, bạn sẽ học cách sử dụng lệnh diff3 của Linux để so sánh và hợp nhất ba tệp có các thay đổi xung đột. Lệnh diff3 là một công cụ mạnh mẽ giúp bạn xác định và giải quyết các xung đột khi làm việc với nhiều phiên bản của một tệp. Bạn sẽ bắt đầu bằng cách hiểu mục đích và cú pháp của lệnh diff3, sau đó học cách sử dụng nó để hợp nhất các tệp xung đột. Lab này sẽ cung cấp cho bạn các ví dụ và các bước thực tế để giúp bạn thành thạo trong việc sử dụng lệnh diff3 cho các tác vụ viết script và lập trình của bạn.

Lệnh diff3 là một công cụ hữu ích để giải quyết các xung đột trong hợp nhất ba chiều, đây là một tình huống phổ biến khi làm việc với các hệ thống kiểm soát phiên bản hoặc cộng tác trên các tệp được chia sẻ. Đến cuối lab này, bạn sẽ có thể sử dụng hiệu quả lệnh diff3 để hợp nhất các tệp xung đột và chọn các thay đổi mong muốn để tạo ra một phiên bản thống nhất.

Tìm hiểu Mục đích và Cú pháp của lệnh diff3

Trong bước này, bạn sẽ tìm hiểu về mục đích và cú pháp của lệnh diff3 trong Linux. Lệnh diff3 được sử dụng để so sánh ba tệp và xác định sự khác biệt giữa chúng.

Cú pháp của lệnh diff3 như sau:

diff3 [options] file1 file2 file3

Ở đây, file1, file2file3 là ba tệp bạn muốn so sánh.

Một số tùy chọn phổ biến cho lệnh diff3 bao gồm:

  • -E: Coi tất cả các tệp là văn bản và so sánh chúng từng dòng một.
  • -a: Coi tất cả các tệp là văn bản, ngay cả khi chúng không chứa văn bản.
  • -L label: Sử dụng nhãn đã cho thay vì tên tệp.
  • -m: Hiển thị đầu ra đã hợp nhất, làm nổi bật các xung đột.

Để hiểu mục đích của lệnh diff3, hãy xem xét một tình huống mà bạn có ba tệp có một số thay đổi xung đột. Bạn có thể sử dụng lệnh diff3 để hợp nhất các tệp này và giải quyết các xung đột.

Hợp nhất các tệp xung đột bằng diff3

Trong bước này, bạn sẽ học cách sử dụng lệnh diff3 để hợp nhất các tệp xung đột.

Hãy tạo ba tệp có một số thay đổi xung đột:

$ cd ~/project
$ echo "Line 1" > file1.txt
$ echo "Line 2" >> file1.txt
$ echo "Line 3" >> file1.txt

$ echo "Line 1" > file2.txt
$ echo "Line 2 - Modified" >> file2.txt
$ echo "Line 4" >> file2.txt

$ echo "Line 1" > file3.txt
$ echo "Line 2 - Another Modification" >> file3.txt
$ echo "Line 3" >> file3.txt

Bây giờ, chúng ta có thể sử dụng lệnh diff3 để hợp nhất các tệp này:

$ diff3 file1.txt file2.txt file3.txt
=======
Line 1
Line 2 - Another Modification
Line 3
-------
Line 1
Line 2 - Modified
Line 4

Lệnh diff3 xác định các thay đổi xung đột và trình bày chúng trong một đầu ra đã hợp nhất. Các dòng bắt đầu bằng =======------- chỉ ra các phần xung đột.

Để giải quyết các xung đột, bạn có thể chỉnh sửa thủ công các tệp và chọn các thay đổi mong muốn.

Ví dụ đầu ra:

Line 1
Line 2 - Modified
Line 3

Trong ví dụ này, chúng ta đã chọn giữ phiên bản đã sửa đổi của "Line 2" từ file2.txt.

Giải quyết Xung đột trong Hợp nhất Ba chiều

Trong bước này, bạn sẽ học cách giải quyết các xung đột trong hợp nhất ba chiều bằng lệnh diff3.

Hãy tiếp tục với ví dụ trước, nơi chúng ta có ba tệp có các thay đổi xung đột:

$ cd ~/project
$ cat file1.txt
Line 1
Line 2
Line 3

$ cat file2.txt
Line 1
Line 2 - Modified
Line 4

$ cat file3.txt
Line 1
Line 2 - Another Modification
Line 3

Để giải quyết các xung đột, chúng ta có thể sử dụng lệnh diff3 với tùy chọn -m, tùy chọn này sẽ hiển thị đầu ra đã hợp nhất với các điểm đánh dấu xung đột:

$ diff3 -m file1.txt file2.txt file3.txt
Line 1
<<<<<<< file1.txt
Line 2
=======
Line 2 - Another Modification
>>>>>>> file3.txt
Line 3
Line 4

Các điểm đánh dấu xung đột <<<<<<< file1.txt, =======>>>>>>> file3.txt chỉ ra các phần xung đột. Bây giờ bạn có thể chỉnh sửa thủ công tệp và chọn các thay đổi mong muốn.

Hãy giải quyết xung đột bằng cách giữ phiên bản đã sửa đổi của "Line 2" từ file3.txt:

$ cat resolved.txt
Line 1
Line 2 - Another Modification
Line 3
Line 4

Ví dụ đầu ra:

Line 1
Line 2 - Another Modification
Line 3
Line 4

Bây giờ, các xung đột đã được giải quyết và tệp đã hợp nhất resolved.txt chứa các thay đổi mong muốn.

Tóm tắt

Trong lab này, bạn đã tìm hiểu về mục đích và cú pháp của lệnh diff3 trong Linux, được sử dụng để so sánh ba tệp và xác định sự khác biệt giữa chúng. Bạn cũng đã học cách sử dụng lệnh diff3 để hợp nhất các tệp xung đột và giải quyết các xung đột trong hợp nhất ba chiều. Lệnh diff3 trình bày các thay đổi xung đột trong một đầu ra đã hợp nhất, cho phép bạn chỉnh sửa thủ công các tệp và chọn các thay đổi mong muốn.

400+ câu lệnh phổ biến trong Linux