Hướng dẫn lệnh sdiff Linux cho người mới bắt đầu (8 ví dụ)

theanh

Administrator
Nhân viên
Tại HowtoForge, chúng tôi đã thảo luận về nhiều tiện ích dòng lệnh tập trung vào việc tìm sự khác biệt giữa các tệp. Nhưng vẫn còn nhiều công cụ như vậy nữa và trong hướng dẫn này, chúng tôi sẽ thảo luận về một lệnh như vậy có tên là sdiffbằng một số ví dụ dễ hiểu.

Xin lưu ý rằng tất cả các ví dụ về lệnh sdiff được đề cập trong bài viết này đều đã được thử nghiệm trên Ubuntu 22.04 LTS.

Lệnh sdiff của Linux​

Lệnh sdiff hiển thị cho bạn sự khác biệt giữa các tệp theo dạng cạnh nhau. Sau đây là cú pháp của nó:
Mã:
sdiff [OPTION]... FILE1 FILE2
Và đây là cách trang hướng dẫn mô tả nó:
Mã:
sdiff - side-by-side merge of file differences
Side-by-side merge of differences between FILE1 and FILE2.
Sau đây là một số ví dụ theo kiểu Hỏi & Đáp sẽ giúp bạn hiểu rõ hơn về cách thức hoạt động của công cụ này.

Câu hỏi 1. Lệnh sdiff hoạt động như thế nào?​

Cách sử dụng cơ bản rất đơn giản, tất cả những gì bạn phải làm là chạy lệnh sdiff với tên tệp làm đối số. Ví dụ:
Mã:
sdiff file1 file2
file1 và file2 hoàn toàn giống nhau trong trường hợp của tôi.



Và đây là đầu ra mà sdiff tạo ra trong trường hợp này:



Kiểu đầu ra này có nghĩa là không có sự khác biệt giữa các tệp.

Câu hỏi 2. Làm thế nào để sdiff bỏ qua chữ hoa chữ thường?​

Giả sử file1 và file2 chứa các dòng sau:



Lệnh:

sdiff file1 file2

tạo ra kết quả sau:



Dấu gạch ngang (|) ở dòng đầu tiên trong cột thứ hai cho biết hai tệp khác nhau ngay ở dòng đầu tiên. Tuy nhiên, nếu muốn, bạn có thể buộc sdiff bỏ qua trường hợp, một điều bạn có thể làm bằng cách sử dụng tùy chọn dòng lệnh -i.

sdiff -i file1 file2



Vì vậy, bạn có thể thấy đầu ra hiện cho thấy hai tệp giống hệt nhau, nghĩa là sự khác biệt về trường hợp đã bị bỏ qua.

Câu hỏi 3. Làm thế nào để sdiff bỏ qua khoảng trắng?​

Trong trường hợp bất kỳ tệp nào chứa khoảng trắng, lệnh sdiff sẽ hiển thị sự khác biệt theo mặc định. Tuy nhiên, nếu muốn, bạn có thể ngăn chặn hành vi này bằng cách sử dụng tùy chọn dòng lệnh -Z:



Sau đó, có một số tùy chọn khác liên quan đến khoảng trắng mà bạn nên biết. Sau đây là danh sách:
Mã:
-E, --ignore-tab-expansion
 ignore changes due to tab expansion
Mã:
-W, --ignore-all-space
 ignore all white space

Câu hỏi 4. Làm thế nào để lệnh sdiff bỏ qua các dòng trống?​

Giống như khoảng trắng, theo mặc định, lệnh sdiff cũng tính đến các dòng trống. Ví dụ:



Tuy nhiên, bạn có thể khiến lệnh bỏ qua các dòng trống bằng cách sử dụng tùy chọn dòng lệnh -B.

sdiff -B file1 file2



Vì vậy, bạn có thể thấy lệnh sdiff không coi dòng trống là sự khác biệt trong trường hợp này.

Câu hỏi 5. Làm thế nào để sdiff loại bỏ các dòng chung?​

Giả sử các tệp chứa một số dòng chung và bạn muốn lệnh sdiff loại bỏ các dòng chung, thì bạn có thể thực hiện việc này bằng tùy chọn dòng lệnh -s.

sdiff -s file1 file2

Câu hỏi 6. Làm thế nào để sdiff sử dụng một chương trình diff khác?​

Theo mặc định, sdiff sử dụng diff để thực hiện so sánh. Tuy nhiên, nếu muốn, bạn thậm chí có thể thay diff bằng chương trình bạn chọn. Để thực hiện việc này, hãy sử dụng tùy chọn --diff-program yêu cầu tên chương trình làm đầu vào.
Mã:
sdiff --diff-program=[PROGRAM] file1 file2

Câu hỏi 7. Cách lưu đầu ra sdiff vào tệp​

Tùy chọn -o hoặc --output cho phép chúng ta lưu kết quả sdiff vào tệp đầu ra. Ví dụ:
Mã:
sdiff --output=/tmp/mydiff.txt file1 file2

Câu 8. Cách chỉ xuất cột bên trái​

Với tùy chọn dòng lệnh -l hoặc dạng dài của nó là --left-column, bạn chỉ nhận được cột bên trái làm kết quả.
Mã:
sdiff --left-column file1 file2

Kết luận​

Công cụ Sdiff cung cấp nhiều tính năng, nhưng đường cong học tập của nó không quá dốc. Tất cả những gì bạn cần làm là thực hành một chút và bạn sẽ ổn thôi. Chúng tôi đã thảo luận về phần lớn các tùy chọn dòng lệnh ở đây. Để biết thêm, hãy truy cập trang hướng dẫn của sdiff.
 
Back
Bên trên