Làm thế nào để so sánh hai tập tin văn bản bằng cách sử dụng Linux

Hướng dẫn này sẽ chỉ cho bạn cách sử dụng Linux để so sánh hai tệp và xuất ra sự khác biệt của chúng với màn hình hoặc tệp.

Bạn không cần phải cài đặt bất kỳ phần mềm đặc biệt nào để so sánh các tệp bằng Linux nhưng bạn cần phải biết cách mở một cửa sổ đầu cuối .

Theo hướng dẫn được liên kết cho thấy có nhiều cách để mở một cửa sổ đầu cuối bằng Linux. Cách đơn giản nhất là nhấn các phím CTRL, ALT và T cùng một lúc.

Tạo các tập tin để so sánh

Để làm theo hướng dẫn này, hãy tạo một tệp có tên "tệp1" và nhập văn bản sau:

10 chai màu xanh lá cây đứng trên tường

10 chai màu xanh lá cây đứng trên tường

Nếu một chai màu xanh lá cây vô tình rơi

Sẽ có 9 chai màu xanh lá cây đứng trên tường

Bạn có thể tạo tệp bằng cách thực hiện theo các hướng dẫn sau:

  1. Mở tệp bằng cách gõ lệnh sau: nano file1
  2. Nhập văn bản vào trình chỉnh sửa nano
  3. Nhấn CTRL và O để lưu tệp
  4. Nhấn CTRL và X để thoát tệp

Bây giờ tạo một tệp khác có tên là "tệp2" và nhập văn bản sau:

10 chai màu xanh lá cây đứng trên tường

Nếu 1 chai màu xanh lá cây nên vô tình rơi

Sẽ có 9 chai màu xanh lá cây đứng trên tường

Bạn có thể tạo tệp bằng cách thực hiện theo các hướng dẫn sau:

  1. Mở tệp bằng cách gõ lệnh sau: nano file2
  2. Nhập văn bản vào trình chỉnh sửa nano
  3. Nhấn CTRL và O để lưu tệp
  4. Nhấn CTRL và X để thoát tệp

Làm thế nào để so sánh hai tập tin bằng cách sử dụng Linux

Lệnh được sử dụng trong Linux để hiển thị sự khác biệt giữa 2 tệp được gọi là lệnh diff.

Dạng đơn giản nhất của lệnh diff là như sau:

diff file1 file2

Nếu các tập tin là như nhau thì sẽ không có đầu ra khi sử dụng lệnh này, tuy nhiên, vì có sự khác biệt, bạn sẽ thấy đầu ra tương tự như sau:

2,4c2,3

<10 chai màu xanh lá cây đứng trên tường

...

> Nếu 1 chai xanh vô tình rơi

> Có 9 chai màu xanh lá cây đứng trên tường

Ban đầu, đầu ra có vẻ khó hiểu nhưng một khi bạn hiểu thuật ngữ thì nó khá logic.

Sử dụng đôi mắt của riêng bạn, bạn có thể thấy rằng sự khác biệt giữa 2 tập tin như sau:

Đầu ra từ lệnh diff cho thấy rằng giữa các dòng 2 và 4 của tệp đầu tiên và dòng 2 và 3 của tệp thứ hai có sự khác biệt.

Sau đó nó liệt kê các dòng từ 2 đến 4 từ tệp đầu tiên, sau đó là 2 dòng khác nhau trong tệp thứ hai.

Làm thế nào để chỉ hiển thị nếu các tập tin khác nhau

Nếu bạn chỉ muốn biết liệu các tệp có khác nhau hay không và bạn không quan tâm đến dòng nào khác nhau, bạn có thể chạy lệnh sau:

diff -q file1 file2

Nếu các tệp khác nhau, thông tin sau sẽ được hiển thị:

Các tệp tin 1 và tệp 2 khác nhau

Nếu các tập tin giống nhau thì không có gì được hiển thị.

Làm thế nào để hiển thị một tin nhắn nếu các tập tin là giống nhau

Khi bạn chạy một lệnh bạn muốn biết rằng nó đã hoạt động chính xác, vì vậy bạn muốn một thông báo được hiển thị khi bạn chạy lệnh diff bất kể các tệp có giống nhau hoặc khác nhau hay không

Để đạt được yêu cầu này bằng cách sử dụng lệnh diff, bạn có thể sử dụng lệnh sau:.

diff -s file1 file2

Bây giờ nếu các tập tin giống nhau, bạn sẽ nhận được thông báo sau:

Tệp tin 1 và tệp 2 giống hệt nhau

Làm thế nào để sản xuất sự khác biệt cạnh nhau

Nếu có rất nhiều sự khác biệt thì nó có thể nhanh chóng trở nên khó hiểu như những gì sự khác biệt thực sự nằm giữa hai tập tin.

Bạn có thể thay đổi đầu ra của lệnh diff để các kết quả được hiển thị cạnh nhau. Để thực hiện việc này, hãy chạy lệnh sau:

diff -y file1 file2

Đầu ra cho tệp sử dụng | biểu tượng để hiển thị sự khác biệt giữa hai dòng, <để hiển thị một dòng đã bị xóa và a> hiển thị một dòng đã được nối.

Thật thú vị nếu bạn chạy lệnh bằng cách sử dụng các tệp trình diễn của chúng tôi thì tất cả các dòng sẽ hiển thị khác nhau ngoại trừ dòng cuối cùng của tệp 2 sẽ được hiển thị là đã bị xóa.

Giới hạn chiều rộng cột

Khi so sánh hai tệp cạnh nhau, có thể khó đọc nếu các tệp có nhiều cột văn bản.

Để hạn chế một số cột sử dụng lệnh sau:

diff --width = 5 tập tin tập tin2

Làm thế nào để bỏ qua trường hợp khác biệt khi so sánh tập tin

Nếu bạn muốn so sánh hai tệp nhưng bạn không quan tâm xem trường hợp của các chữ cái có giống nhau giữa hai tệp hay không, thì bạn có thể sử dụng lệnh sau:

diff -i file1 file2

Làm thế nào để bỏ qua Trailing Space trắng ở cuối của một dòng

Nếu khi so sánh các tệp mà bạn nhận thấy vô số sự khác biệt và sự khác biệt là do không gian màu trắng ở cuối dòng, bạn có thể bỏ qua chúng như hiển thị dưới dạng thay đổi bằng cách chạy lệnh sau:

diff -Z tệp1 tệp2

Làm thế nào để bỏ qua tất cả sự khác biệt không gian trắng giữa hai tập tin

Nếu bạn chỉ quan tâm đến văn bản trong một tập tin và bạn không quan tâm cho dù có nhiều không gian trong một hơn khác, bạn có thể sử dụng lệnh sau đây:

diff -w tệp1 tệp2

Làm thế nào để bỏ qua các dòng trống khi so sánh hai tập tin

Nếu bạn không quan tâm rằng một tệp có thể có các dòng trống thừa trong đó thì bạn có thể so sánh các tệp bằng cách sử dụng lệnh sau:

diff -B tệp1 tệp2

Tóm lược

Bạn có thể tìm thêm thông tin bằng cách đọc hướng dẫn sử dụng cho lệnh diff.

người đàn ông khác

Lệnh diff có thể được sử dụng ở dạng đơn giản nhất để chỉ cho bạn thấy sự khác biệt giữa 2 tệp nhưng bạn cũng có thể sử dụng nó để tạo một tệp khác như một phần của chiến lược vá như được hiển thị trong hướng dẫn này cho lệnh vá Linux .

Một lệnh khác mà bạn có thể sử dụng để so sánh các tập tin là lệnh cmp như được hiển thị trong hướng dẫn này . Điều này so sánh các tập tin theo byte.