NỘI DUNG

Hosting tốc độ cao Vietnix - tốc độ tải trang trung bình dưới 1 giây
VPS siêu tốc Vietnix - trải nghiệm mượt mà, ổn định
28/09/2024
Lượt xem

Lệnh comm trong Linux – Hướng dẫn so sánh nội dung 2 file qua 10 ví dụ chi tiết

28/09/2024
13 phút đọc
Lượt xem

Đánh giá

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.

Lệnh comm trong Linux
Lệnh comm trong Linux

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]

iconLư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ọnMô 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-orderKiể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-orderKhông kiểm tra xem 2 file input đã được sắp xếp hay chưa.
–output-delimiter=STRTách các cột bằng chuỗi STR.
–versionHiển thị thông tin phiên bản của lệnh comm và thoát.

iconLư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.

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.

Kết quả so sánh nội dung 2 file đã sắp xếp
Kết quả so sánh nội dung 2 file đã sắp xếp

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.

Kết quả so sánh 2 file chưa được sắp xếp
Kết quả so sánh 2 file 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.

Kết quả khi ẩn cột đầu tiên
Kết quả khi ẩn cột đầ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.

Kết quả ẩn cột thứ 2 khi so sánh
Kết quả ẩn cột thứ 2 khi so sánh

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.

Kết quả ẩn cột thứ 3 khi so sánh
Kết quả ẩn cột thứ 3 khi so sánh

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ự.

Kết quả file không được sắp xếp
Kết quả file không được sắp xếp

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.

Bỏ qua kiểm tra sắp xếp
Bỏ qua kiểm tra sắp xếp

iconLư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.

Tách các cột của output bằng lệnh comm
Tách các cột của output bằng lệnh comm

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.

Hiển thị số dòng của mỗi cột
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.

Hiển thị thông tin phiên bản
Hiển thị thông tin phiên bản

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ả.

THEO DÕI VÀ CẬP NHẬT CHỦ ĐỀ BẠN QUAN TÂM

Đăng ký ngay để nhận những thông tin mới nhất từ blog của chúng tôi. Đừng bỏ lỡ cơ hội truy cập kiến thức và tin tức hàng ngày

Chọn chủ đề :

Hưng Nguyễn

Co-Founder
tại

Kết nối với mình qua

Kết nối với mình qua

Theo dõi
Thông báo của
guest
0 Comments
Phản hồi nội tuyến
Xem tất cả bình luận

Tăng tốc độ website - Nâng tầm giá trị thương hiệu

Tăng tốc tải trang

95 điểm

Nâng cao trải nghiệm người dùng

Tăng 8% tỷ lệ chuyển đổi

Thúc đẩy SEO, Google Ads hiệu quả

Tăng tốc ngay

SẢN PHẨM NỔI BẬT

7 NGÀY DÙNG THỬ HOSTING

NẮM BẮT CƠ HỘI, THÀNH CÔNG DẪN LỐI

Cùng trải nghiệm dịch vụ hosting tốc độ cao được hơn 100,000 khách hàng sử dụng

ĐĂNG KÝ NHẬN TÀI LIỆU THÀNH CÔNG
Cảm ơn bạn đã đăng ký nhận tài liệu mới nhất từ Vietnix!
ĐÓNG

ĐĂNG KÝ DÙNG THỬ HOSTING

7 NGÀY MIỄN PHÍ

ĐĂNG KÝ DÙNG THỬ HOSTING

7 NGÀY MIỄN PHÍ

XÁC NHẬN ĐĂNG KÝ DÙNG THỬ THÀNH CÔNG
Cảm ơn bạn đã đăng ký thông tin thành công. Đội ngũ CSKH sẽ liên hệ trực tiếp để kích hoạt dịch vụ cho bạn nhanh nhất!
ĐÓNG