Bạn đang tìm cách để so sánh nội dung của 2 file trên hệ điều hành Linux? Lệnh comm chính là điều mà bạn đang tìm kiếm. Để hiểu rõ hơn về cách lệnh comm giúp bạn như thế nào, hãy theo dõi bài viết dưới đây của Vietnix nhé!
Lệnh comm trong Linux là gì?
Lệnh comm trong Linux giúp bạn so sánh nội dung của 2 file. Nếu 2 file này đã được sắp xếp theo thứ tự, lệnh comm sẽ hiển thị kết quả so sánh:
- Cột đầu tiên: Nội dung chỉ có trong file đầu tiên.
- Cột thứ hai: Nội dung chỉ có trong file thứ hai.
- Cột thứ ba: Nội dung chung của cả 2 file.
Nếu file chưa được sắp xếp, lệnh comm sẽ báo lỗi và không thể so sánh được.
Bên cạnh đó, bạn còn có thể tham khảo thêm về dòng lệnh cmp. Một dòng lệnh tương tự được sử dụng trong việc so sánh nội dung giữa các file.
Ngoài ra, bạn có thể xem thêm các câu lệnh trong Linux cơ bản khác để hiểu thêm về cách sử dụng hệ điều hành
Cú pháp cơ bản của lệnh comm
Cú pháp cơ bản của lệnh comm như sau:
comm [OPTION]... [FILE1] [FILE2]
Lưu ý
Trong cú pháp trên, OPTION nằm trong dấu ngoặc vuông và theo sau bởi 3 dấu chấm có nghĩa là bạn có thể sử dụng nhiều tùy chọn cùng lúc. Hơn nữa, FILE1 & FILE2 cho thấy lệnh comm chỉ cho phép so sánh 2 file cùng một lúc.
7 tùy chọn sử dụng lệnh comm
Tùy chọn | Mô tả |
---|---|
-1 | Ẩn cột đầu tiên của output. |
-2 | Ẩn cột thứ 2 của output. |
-3 | Ẩn cột thứ 3 của output. |
–check-order | Kiểm tra xem 2 file input đã được sắp xếp hay chưa. Nếu chưa được sắp xếp, lệnh sẽ báo lỗi. |
–nocheck-order | Không kiểm tra xem 2 file input đã được sắp xếp hay chưa. |
–output-delimiter=STR | Tách các cột bằng chuỗi STR. |
–version | Hiển thị thông tin phiên bản của lệnh comm và thoát. |
Lưu ý
- Các tùy chọn trong giao diện dòng lệnh của Linux phân biệt chữ hoa chữ thường. Do đó, bạn hãy nhập chính xác các tùy chọn.
- Để biết thêm chi tiết về lệnh comm và các tùy chọn, bạn có thể sử dụng lệnh man comm trong terminal.
10 ví dụ về cách sử dụng lệnh comm trong Linux
- So sánh 2 file đã được sắp xếp
- So sánh 2 file chưa được sắp xếp
- Ẩn cột đầu tiên khi so sánh
- Ẩn cột thứ 2 khi so sánh
- Ẩn cột thứ 3 khi so sánh
- Kiểm tra xem các file đã được sắp xếp hay chưa
- Bỏ qua kiểm tra sắp xếp
- Tách các cột của output bằng lệnh comm trong Linux
- Hiển thị số dòng của mỗi cột
- Hiển thị thông tin phiên bản
Ví dụ 1: So sánh 2 file đã được sắp xếp
Để so sánh 2 file có tên file1.txt và file2.txt đã được sắp xếp, bạn có thể sử dụng lệnh comm theo các bước sau:
Bước 1: Mở Terminal trên Ubuntu.
Bước 2: Nhập lệnh sau và nhấn Enter:
comm file1.txt file2.txt
Bước 3: Để kiểm tra nội dung của từng file theo cách thủ công, bạn có thể sử dụng lệnh cat như sau:
cat file1.txt
cat file2.txt
Nhấn Enter sau mỗi lệnh.
Kết quả: Như bạn thấy, cột đầu tiên và thứ hai của kết quả hiển thị nội dung duy nhất của file1.txt và file2.txt tương ứng. Nhưng cột thứ ba hiển thị nội dung chung của cả 2 file.
Ví dụ 2: So sánh 2 file chưa được sắp xếp
Nếu bạn cố gắng sử dụng lệnh comm để so sánh 2 file có tên file3.txt và file4.txt chưa được sắp xếp, bạn sẽ gặp lỗi. Các bước thực hiện như sau:
Bước 1: Mở Terminal trên Ubuntu.
Bước 2: Nhập lệnh sau và nhấn Enter:
comm file3.txt file4.txt
Bước 3: Để kiểm tra nội dung của từng file theo cách thủ công, bạn có thể sử dụng lệnh cat như sau:
cat file3.txt
cat file4.txt
Nhấn Enter sau mỗi lệnh.
Kết quả: Màn hình hiển thị thông báo lỗi, cho biết 2 file input chưa được sắp xếp.
Ví dụ 3: Ẩn cột đầu tiên khi so sánh
Để ẩn cột đầu tiên (cột chứa các dòng chỉ có trong file thứ nhất) khi so sánh 2 file có tên file1.txt và file2.txt đã được sắp xếp, bạn có thể sử dụng lệnh comm cùng tùy chọn -1
. Các bước thực hiện như sau:
Bước 1: Mở Terminal trên Ubuntu.
Bước 2: Nhập lệnh sau và nhấn Enter:
comm -1 file1.txt file2.txt
Bước 3: Để kiểm tra nội dung của từng file theo cách thủ công, bạn có thể sử dụng lệnh cat như sau:
cat file1.txt
cat file2.txt
Nhấn Enter sau mỗi lệnh.
Kết quả: Cột đầu tiên của kết quả sẽ bị ẩn đi, bạn sẽ chỉ thấy những dòng xuất hiện trong file thứ hai mà không xuất hiện trong file đầu tiên.
Ví dụ 4: Ẩn cột thứ 2 khi so sánh
Tương tự, để ẩn cột thứ 2 (cột chứa các dòng chỉ có trong file thứ 2), bạn sử dụng lệnh comm cùng tùy chọn -2
:
Bước 1: Mở Terminal trên Ubuntu.
Bước 2: Nhập lệnh sau và nhấn Enter:
comm -2 file1.txt file2.txt
Bước 3: Để kiểm tra nội dung của từng file theo cách thủ công, bạn có thể sử dụng lệnh cat như sau:
cat file1.txt
cat file2.txt
Nhấn Enter sau mỗi lệnh.
Kết quả: Trong hình dưới đây, chúng ta chỉ thấy cột đầu tiên. Cột thứ hai bị ẩn đi vì sử dụng lệnh comm với tùy chọn -2. Điều này giúp chúng ta dễ dàng so sánh các dòng chỉ xuất hiện trong file đầu tiên.
Ví dụ 5: Ẩn cột thứ 3 khi so sánh
Ở ví dụ này, chúng ta có 2 file là file1.txt và file2.txt chứa danh sách các số, để tìm ra các số chung và khác nhau giữa 2 file chúng ta sẽ sử dụng lệnh comm cùng với tùy chọn -3
. Bạn thực hiện theo các bước dưới đây:
Bước 1: Mở Terminal trên Ubuntu.
Bước 2: Nhập lệnh sau và nhấn Enter:
comm -3 file1.txt file2.txt
Bước 3: Để kiểm tra nội dung của từng file theo cách thủ công, bạn có thể sử dụng lệnh cat như sau:
cat file1.txt
cat file2.txt
Nhấn Enter sau mỗi lệnh.
Kết quả: Cột thứ 3 chứa nội dung chung của 2 file đã bị ẩn. Kết quả trả về sẽ chỉ hiển thị 2 cột là của file1.txt và file2.txt.
Ví dụ 6: Kiểm tra xem các file đã được sắp xếp hay chưa
Để kiểm tra xem 2 file file3.txt và file4.txt đã được sắp xếp hay chưa, bạn có thể sử dụng tùy chọn –check-order
cùng với lệnh comm. Nếu phát hiện dòng nào chưa được sắp xếp, lệnh sẽ dừng lại và hiển thị thông báo lỗi. Các bước thực hiện như sau:
Bước 1: Mở Terminal trên Ubuntu.
Bước 2: Nhập lệnh sau và nhấn Enter:
comm --check-order file3.txt file4.txt
Bước 3: Để kiểm tra nội dung của từng file theo cách thủ công, bạn có thể sử dụng lệnh cat như sau:
cat file3.txt
cat file4.txt
Nhấn Enter sau mỗi lệnh.
Kết quả: Trong hình ảnh bên dưới, bạn sẽ thấy danh sách các file không được sắp xếp theo thứ tự.
Ví dụ 7: Bỏ qua kiểm tra sắp xếp
Nếu bạn muốn bỏ qua kiểm tra sắp xếp và so sánh 2 file có tên file3.txt và file4.txt bất kể thứ tự của 2 file, bạn có thể sử dụng tùy chọn --nocheck-order
:
Bước 1: Mở Terminal trên Ubuntu.
Bước 2: Nhập lệnh sau và nhấn Enter:
comm --nocheck-order file3.txt file4.txt
Bước 3: Để kiểm tra nội dung của từng file theo cách thủ công, bạn có thể sử dụng lệnh cat như sau:
cat file3.txt
cat file4.txt
Nhấn Enter sau mỗi lệnh.
Kết quả: Lệnh comm sẽ bỏ qua kiểm tra sắp xếp và hiển thị kết quả so sánh dựa trên thứ tự hiện tại của các dòng trong 2 file.
Lưu ý
Việc sử dụng tùy chọn --nocheck-order
có thể dẫn đến kết quả không chính xác nếu 2 file input chưa được sắp xếp.
Ví dụ 8: Tách các cột của output bằng lệnh comm trong Linux
Khi sử dụng lệnh comm trong Linux, các cột của kết quả đầu ra mặc định được phân tách bằng dấu cách. Tuy nhiên, bạn có thể tự chọn một ký tự hoặc chuỗi để phân tách các cột bằng cách sử dụng tùy chọn –output-delimiter=STR
.
Ví dụ, để sử dụng ký tự # làm ký tự phân cách khi so sánh 2 file có tên file1.txt và file2.txt, bạn có thể thực hiện như sau:
Bước 1: Mở Terminal trên Ubuntu.
Bước 2: Nhập lệnh sau và nhấn Enter:
comm --output-delimiter=# file1.txt file2.txt
Bước 3: Để kiểm tra nội dung của từng file theo cách thủ công, bạn có thể sử dụng lệnh cat như sau:
cat file1.txt
cat file2.txt
Nhấn Enter sau mỗi lệnh.
Kết quả: Ký hiệu “#” đại diện cho nội dung duy nhất của file 2 và “##” đại diện cho nội dung chung của cả 2 file. “No string” đại diện cho nội dung duy nhất của file 1.
Ví dụ 9: Hiển thị số dòng của mỗi cột
Để hiển thị số dòng của mỗi cột trong kết quả trả về, bạn có thể sử dụng tùy chọn –total cùng với lệnh comm.
Bước 1: Mở Terminal trên Ubuntu.
Bước 2: Nhập lệnh sau và nhấn Enter:
comm --total file1.txt file2.txt
Kết quả: Output hiển thị số dòng của mỗi cột.
Ví dụ 10: Hiển thị thông tin phiên bản
Để hiển thị thông tin phiên bản của lệnh comm, bạn có thể sử dụng tùy chọn –version.
Bước 1: Mở Terminal trên Ubuntu.
Bước 2: Nhập lệnh sau và nhấn Enter:
comm --version
Kết quả: Output sẽ hiển thị thông tin phiên bản của lệnh comm được cài đặt trên hệ thống.
Câu hỏi thường gặp
Có thể sử dụng lệnh comm
để so sánh các lớn không?
Có thể. Khi sử dụng bạn cần lưu ý những điều sau:
1. Phân chia file
2. Sử dụng công cụ khác
3. Kiểm tra tính trọn vẹn cho file
Có thể sử dụng lệnh comm
để so sánh nội dung của hai tệp theo mã hóa khác nhau không?
Câu trả lời là không. Vốn dĩ dòng lệnh hoạt động dựa trên việc so sánh từng dòng văn bản một cách tuần tự. Nếu 2 file có mã hóa khác nhau, các ký tự sẽ được biểu diễn khác nhau và dẫn đến kết quả so sánh không chính xác.
Lời kết
Qua bài viết này, bạn đã tìm hiểu chi tiết về lệnh comm trong Linux, từ cú pháp, tùy chọn và cách sử dụng. Hy vọng những thông tin này sẽ hữu ích cho bạn trong việc so sánh và phân tích nội dung của các file một cách hiệu quả.