10 ví dụ lệnh sdiff trên Centos / Ubuntu / Debian / Fedora
Lệnh 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 một cách tương tác. Nó dễ sử dụng và đi kèm với các tùy chọn đơn giản, bạn sẽ hiểu rõ hơn qua 10 ví dụ cụ thể dưới đây.
Cú pháp sử dụng sdiff:
$ sdiff option... file1 file2
Lệnh sdiff hiển thị sự khác biệt giữa hai tập tin
Cách đơn giản nhất để chạy sdiff là cung cấp hai tên tập tin bạn đang muốn so sánh. Nó sẽ hiển thị sự khác biệt đã được hợp nhất song song như được hiển thị trong ảnh chụp màn hình sau.
$ cal >cal.txt $ df -h >du.txt $ sdiff du.txt cal.txt
Xử lý tất cả các tập tin như là tập tin văn bản
2.1 Để xem xét tất cả các tập tin như là văn bản và so sánh chúng theo từng dòng, dù chúng có phải là tập tin văn bản hay không, hãy sử dụng cờ -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 các tab và khoảng trắng
3.1 Nếu bạn có các tập tin với quá nhiều khoảng trắng, bạn có thể cho sdiff biết để bỏ qua tất cả các khoảng trắng trong quá trình so sánh bằng cách sử dụng công tắc -W.
$ sdiff -W du.txt cal.txt
3.2. Bạn cũng có thể cho sdiff biết để 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
3.3. Ngoài ra, bạn có thể chỉ thị cho sdiff bỏ qua các thay đổi do mở rộng tab bằng cách sử dụng cờ -E.
$ sdiff -E du.txt cal.txt
Bỏ qua sự khác biệt trong việc so sánh không phân biệt hoa thường
Để bỏ qua phân biệt chữ hoa chữ thường (trong đó sdiff xem xét việc chữ hoa và chữ thường như nhau), sử dụng tùy chọn -i như được hiển thị.
$ sdiff -i du.txt cal.txt
Bỏ qua các dòng trống trong quá trình so sánh khác biệt
Tùy chọn -B giúp bỏ qua các dòng trống trong tập tin.
$ sdiff -B du.txt cal.txt
Định nghĩa số cột xuất ra
sdiff cho phép bạn đặt số cột được in ra (mặc định là 130) bằng cách sử dụng công tắc -w như sau.
$ sdiff -w 150 du.txt cal.txt
Mở rộng tab thành dấu cách
Để 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
Tùy chọn -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 vào tập tin sdiff.txt, nhấn Enter sau khi thấy ký tự % để 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 cài đặt một số trình soạn thảo như ed trên hệ thống của bạn trước khi sử dụng chúng trong trường hợp này.
Gọi một chương trình khác để so sánh tập tin
Công tắ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 tập tin. Ví dụ, bạn có thể gọi chương trình diff như được hiển thị.
$ sdiff --diff-program=diff du.txt cal.txt
Để biết thêm thông tin, xem trang man của sdiff.
$ man sdiff