Lệnh comm trong linux với các ví dụ dễ hiểu

Lệnh comm trong Linux là công cụ hữu ích để so sánh hai file văn bản, tìm ra điểm chung và khác biệt giữa chúng một cách dễ dàng. Lệnh comm cho phép bạn hiển thị các dòng chỉ có ở file thứ nhất, chỉ có ở file thứ hai, hoặc có ở cả hai file. Kết quả được trình bày rõ ràng, giúp bạn nhanh chóng phân tích và xử lý dữ liệu từ các file.

Lệnh comm trong linux là gì?

Lệnh command comm in linux là một công cụ dòng lệnh mạnh mẽ, giúp so sánh hai file văn bản đã được sắp xếp theo thứ tự. Nó tìm ra các dòng duy nhất trong mỗi file, cũng như các dòng chung giữa cả hai file một cách hiệu quả. Kết quả được hiển thị thành ba cột: cột 1 chứa các dòng chỉ có trong file thứ nhất, cột 2 cho các dòng chỉ có trong file thứ hai, và cột 3 là các dòng xuất hiện ở cả hai file. Bạn có thể sử dụng các tùy chọn để ẩn các cột không cần thiết, giúp tập trung vào thông tin quan trọng. Lệnh này rất hữu ích để tìm sự khác biệt và điểm chung giữa các tập dữ liệu văn bản.

Tìm hiểu Mục đích và Cú pháp của Lệnh comm

Trong bước này, bạn sẽ tìm hiểu về mục đích và cú pháp của lệnh comm trong Linux.

Lệnh comm là một công cụ mạnh mẽ được dùng để so sánh hai file đã được sắp xếp, theo từng dòng.

Cú pháp cơ bản của lệnh comm như sau:

comm [options] file1 file2

Ở đây, file1file2 là hai file đã được sắp xếp mà bạn muốn so sánh.

Lệnh comm xuất ra ba cột:

  1. Các dòng chỉ có trong file1
  2. Các dòng chỉ có trong file2
  3. Các dòng có trong cả file1file2

Theo mặc định, cả ba cột đều được hiển thị, bạn có thể dùng các tùy chọn để tùy chỉnh đầu ra.

Ví dụ về đầu ra:

$ comm file1.txt file2.txt
        apple
banana
        cherry
date
        fig

Trong ví dụ này, các dòng "apple", "cherry", và "fig" chỉ có trong file1.txt.

Dòng "banana" chỉ có trong file2.txt, và dòng "date" có trong cả hai file.

So Sánh và Đối Chiếu Hai File Đã Sắp Xếp với Lệnh comm

Trong bước này, bạn sẽ học cách sử dụng lệnh comm để so sánh và đối chiếu hai file đã được sắp xếp.

Đầu tiên, hãy tạo hai file text mẫu, file1.txtfile2.txt, với một vài nội dung như sau:

$ cat > file1.txt
apple
banana
cherry
date
fig
$ cat > file2.txt
banana
cherry
date
grape

Bây giờ, chúng ta hãy sử dụng lệnh comm để so sánh hai file này với nhau nhé:

$ comm file1.txt file2.txt
        apple
banana
        cherry
date
        fig
        grape

Kết quả trả về sẽ hiển thị:

  • Các dòng chỉ có trong file1.txt (có tiền tố là một dấu tab)
  • Các dòng chỉ có trong file2.txt (có tiền tố là một dấu tab)
  • Các dòng chung cho cả hai file (không có tiền tố)

Bạn cũng có thể sử dụng các tùy chọn khác nhau để tùy chỉnh kết quả đầu ra:

  • comm -1 file1.txt file2.txt: Ẩn cột chứa các dòng chỉ có trong file1.txt
  • comm -2 file1.txt file2.txt: Ẩn cột chứa các dòng chỉ có trong file2.txt
  • comm -3 file1.txt file2.txt: Ẩn cột chứa các dòng chung cho cả hai file

Ví dụ:

$ comm -1 -2 file1.txt file2.txt
date
$ comm -1 -3 file1.txt file2.txt
apple
fig
$ comm -2 -3 file1.txt file2.txt
banana
cherry
grape

Tùy chỉnh đầu ra của lệnh comm với các tùy chọn

Trong bước này, bạn sẽ tìm hiểu cách tùy chỉnh đầu ra của lệnh comm bằng nhiều tùy chọn khác nhau.

Đầu tiên, hãy tạo thêm hai tệp văn bản mẫu, file3.txtfile4.txt:

$ cat > file3.txt
apple
banana
cherry
date
fig
$ cat > file4.txt
banana
cherry
date
grape
kiwi

Bây giờ, hãy khám phá một số tùy chọn có sẵn với lệnh comm:

  1. Ẩn các cột:

    • comm -1 file3.txt file4.txt: Ẩn cột chứa các dòng chỉ có trong file3.txt.
    • comm -2 file3.txt file4.txt: Ẩn cột chứa các dòng chỉ có trong file4.txt.
    • comm -3 file3.txt file4.txt: Ẩn cột chứa các dòng chung cho cả hai tệp.
  2. Ẩn tất cả tiêu đề cột:

    • comm -1 -2 -3 file3.txt file4.txt: Ẩn tất cả các tiêu đề cột.
  3. Ẩn dấu phân cách trống:

    • comm -w file3.txt file4.txt: Ẩn các dấu phân cách khoảng trắng giữa các cột.
  4. Ẩn số dòng:

    • comm --nocheck-order file3.txt file4.txt: Ẩn số dòng (giả sử các tệp đã được sắp xếp).

Ví dụ về đầu ra:

$ comm -1 file3.txt file4.txt
        banana
        cherry
date
        grape
        kiwi
$ comm -1 -2 -3 file3.txt file4.txt
banana
cherry
date
grape
kiwi
$ comm -w file3.txt file4.txt
applebananacherrydate figbananacherrydate grape kiwi
$ comm --nocheck-order file3.txt file4.txt
apple
banana
cherry
date
fig
banana
cherry
date
grape
kiwi

Kết luận cho linux comm command

Tóm lại, lệnh comm là một công cụ hữu ích để so sánh hai file văn bản trong Linux. Nó giúp bạn dễ dàng tìm ra những dòng giống nhau, chỉ có ở file thứ nhất, hoặc chỉ có ở file thứ hai. Với linux comm command, bạn có thể nhanh chóng xác định sự khác biệt giữa các phiên bản của một file cấu hình. Hãy thử nghiệm với các tùy chọn khác nhau để tận dụng tối đa sức mạnh của lệnh này. Hy vọng bài viết này đã giúp bạn hiểu rõ hơn về cách sử dụng lệnh comm trong Linux. Chúc bạn thành công trong việc quản lý và so sánh các file văn bản của mình! Đừng ngần ngại khám phá thêm các lệnh khác để làm chủ hệ thống Linux nhé.

Last Updated : 14/10/2025