Lệnh "sdiff" trong Linux [Ví dụ cụ thể]

Trong một trong các bài viết trước đó của chúng tôi, chúng tôi đã giải thích về 9 công cụ so sánh và tìm đặc điểm khác biệt (Diff) tốt nhất cho các hệ thống Linux. Chúng tôi liệt kê một sự kết hợp của các công cụ dòng lệnh và giao diện đồ họa để so sánh và tìm đặc điểm khác biệt giữa các tập tin, mỗi công cụ đều có những tính năng đáng chú ý. Một tiện ích diff hữu ích khác cho Linux là được gọi là sdiff.

sdiff là một tiện ích dòng lệnh đơn giản để hiển thị sự khác biệt giữa hai tập tin và hợp nhất theo cách tương tác. Nó dễ sử dụng và đi kèm với các tùy chọn sử dụng rõ ràng như được giải thích dưới đây.

Cú pháp sử dụng sdiff như sau.

$ sdiff option... file1 file2

Hiển thị Sự khác biệt giữa Hai Tập tin trong Linux

1. Cách dễ nhất để chạy sdiff là cung cấp hai tên tập tin mà bạn đang cố gắng so sánh. Nó sẽ hiển thị sự khác biệt đã hợp nhất cạnh nhau như được hiển thị trong ảnh chụp màn hình dưới đây.

$ cal >cal.txt
$ df -h >du.txt
$ sdiff du.txt cal.txt
So sánh sự khác biệt giữa các tệp tin trong Linux

Xử lý tất cả tập tin như Tệp văn bản

2. Để xử lý tất cả các tệp tin như văn bản và so sánh chúng từng dòng, dù chúng có phải là tệp tin văn bản hay không, sử dụng tùy chọn -a.

$ sdiff -a du.txt cal.txt

Filesystem      Size  Used Avail Use% Mounted on	      |	     April 2018       
udev            3.9G     0  3.9G   0% /dev		      |	Su Mo Tu We Th Fr Sa  
tmpfs           788M  9.7M  779M   2% /run		      |	 1  2  3  4  5  6  7  
/dev/sda10      324G  265G   43G  87% /			      |	 8  9 10 11 12 13 14  
tmpfs           3.9G  274M  3.6G   7% /dev/shm		      |	15 16 17 18 19 20 21  
tmpfs           5.0M  4.0K  5.0M   1% /run/lock		      |	22 23 24 25 26 27 28  
tmpfs           3.9G     0  3.9G   0% /sys/fs/cgroup	      |	29 30                 
/dev/loop2       82M   82M     0 100% /snap/core/4206	      |	                      
/dev/loop4      181M  181M     0 100% /snap/vlc/190	      <
/dev/loop1       87M   87M     0 100% /snap/core/4407	      <
/dev/loop0      189M  189M     0 100% /snap/vlc/158	      <
/dev/loop3       83M   83M     0 100% /snap/core/4327	      <
cgmfs           100K     0  100K   0% /run/cgmanager/fs	      <
tmpfs           788M   40K  788M   1% /run/user/1000	      <

Bỏ qua tab và khoảng trắng

3. Nếu bạn có các tệp tin với quá nhiều khoảng trắng, bạn có thể yêu cầu sdiff bỏ qua tất cả các khoảng trắng khi so sánh bằng cách sử dụng công cụ -W.

$ sdiff -W du.txt cal.txt

4. Bạn cũng có thể yêu cầu sdiff bỏ qua bất kỳ khoảng trắng nào ở cuối dòng bằng cách sử dụng tùy chọn -z.

$ sdiff -z du.txt cal.txt

5. Ngoài ra, bạn có thể chỉ định cho sdiff bỏ qua các thay đổi do mở rộng tab với cờ -E.

$ sdiff -E du.txt cal.txt

Bỏ qua Chữ hoa/Chữ thường khi So sánh Khác biệt

6. Để bỏ qua chữ hoa/chữ thường (nơi sdiff coi các chữ hoa và chữ thường là giống nhau), sử dụng tùy chọn -i như được hiển thị dưới đây.

$ sdiff -i du.txt cal.txt

Bỏ qua Dòng trống khi So sánh Khác biệt

7. Tùy chọn -B giúp bỏ qua dòng trống trong các tệp tin.

$ sdiff -B du.txt cal.txt

Xác định Số cột Đầu ra

8. sdiff cho phép bạn thiết lập số cột được in (giá trị mặc định là 130), bằng cách sử dụng công cụ -w như sau.

$ sdiff -w 150 du.txt cal.txt

Mở rộng tab thành dấu cách

9. Để mở rộng tab thành dấu cách trong đầu ra, sử dụng tùy chọn -t.

$ sdiff -t du.txt cal.txt

Chạy sdiff theo cách tương tác

10. Cờ -o cho phép chạy sdiff theo cách tương tác hơn và gửi đầu ra vào một tập tin. Trong lệnh này, đầu ra sẽ được gửi đến tệp sdiff.txt, nhấn Enter sau khi nhìn thấy dấu % để mở menu tương tác.

$ sdiff du.txt cal.txt -o sdiff.txt

Filesystem      Size  Used Avail Use% Mounted on	      |	     April 2018       
udev            3.9G     0  3.9G   0% /dev		      |	Su Mo Tu We Th Fr Sa  
tmpfs           788M  9.7M  779M   2% /run		      |	 1  2  3  4  5  6  7  
/dev/sda10      324G  265G   43G  87% /			      |	 8  9 10 11 12 13 14  
tmpfs           3.9G  274M  3.6G   7% /dev/shm		      |	15 16 17 18 19 20 21  
tmpfs           5.0M  4.0K  5.0M   1% /run/lock		      |	22 23 24 25 26 27 28  
tmpfs           3.9G     0  3.9G   0% /sys/fs/cgroup	      |	29 30                 
/dev/loop2       82M   82M     0 100% /snap/core/4206	      |	                      
/dev/loop4      181M  181M     0 100% /snap/vlc/190	      <
/dev/loop1       87M   87M     0 100% /snap/core/4407	      <
/dev/loop0      189M  189M     0 100% /snap/vlc/158	      <
/dev/loop3       83M   83M     0 100% /snap/core/4327	      <
cgmfs           100K     0  100K   0% /run/cgmanager/fs	      <
tmpfs           788M   40K  788M   1% /run/user/1000	      <
% ed: Edit then use both versions, each decorated with a header. eb: Edit then use both versions. el or e1: Edit then use the left version. er or e2: Edit then use the right version. e: Discard both versions then edit a new one. l or 1: Use the left version. r or 2: Use the right version. s: Silently include common lines. v: Verbosely include common lines. q: Quit. %

Lưu ý rằng bạn cần phải có một số trình chỉnh sửa như ed được cài đặt trên hệ thống của bạn trước khi sử dụng chúng, trong tình huống này.

Gọi Chương trình khác để So sánh Tệp tin

11. Công cụ --diff-program cho phép bạn gọi một công cụ dòng lệnh khác, không phải sdiff để so sánh các tệp tin, ví dụ, bạn có thể gọi chương trình diff như được hiển thị dưới đây.

$ sdiff --diff-program=diff du.txt cal.txt

Để biết thêm thông tin, hãy xem trang man của sdiff.

$ man sdiff

Trong bài viết này, chúng tôi đã xem xét các ví dụ về công cụ dòng lệnh sdiff cho người mới bắt đầu. Nếu bạn có bất kỳ câu hỏi nào, hãy sử dụng biểu mẫu bình luận bên dưới để liên hệ với chúng tôi.