Lệnh comm trong Linux

Giới thiệu

Trong lab này, bạn sẽ học cách sử dụng lệnh comm của Linux để so sánh và đối chiếu hai file văn bản đã được sắp xếp. Lệnh comm là một công cụ mạnh mẽ cho phép bạn xác định các dòng duy nhất và các dòng chung giữa hai file. Bạn sẽ bắt đầu bằng cách hiểu mục đích và cú pháp của lệnh comm, sau đó khám phá cách tùy chỉnh đầu ra của nó bằng cách sử dụng các tùy chọn khác nhau. Lab này bao gồm các ví dụ thực tế và các trường hợp sử dụng cho lệnh comm, biến nó thành một kỹ năng có giá trị cho các tác vụ xử lý và chỉnh sửa văn bản trong môi trường Linux.

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 sử dụng để so sánh và đối chiếu hai file đã được sắp xếp, theo từng dòng.

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

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 chung cho cả file1file2

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

Ví dụ đầ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" là duy nhất cho file1.txt, dòng "banana" là duy nhất cho file2.txt, và dòng "date" là chung cho cả hai file.

So sánh và Đối chiếu Hai File Đã Sắp Xếp Sử dụng 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 văn bản mẫu, file1.txtfile2.txt, với một số nội dung:

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

Bây giờ, hãy sử dụng lệnh comm để so sánh hai file:

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

Đầu ra hiển thị:

  • Các dòng chỉ có trong file1.txt (có tiền tố là một tab)
  • Các dòng chỉ có trong file2.txt (có tiền tố là một 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 đầu ra:

  • comm -1 file1.txt file2.txt: Ẩn cột các dòng chỉ có trong file1.txt
  • comm -2 file1.txt file2.txt: Ẩn cột các dòng chỉ có trong file2.txt
  • comm -3 file1.txt file2.txt: Ẩn cột 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ẽ học cách tùy chỉnh đầu ra của lệnh comm bằng cách sử dụng các tùy chọn khác nhau.

Đầu tiên, hãy tạo thêm hai file 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 các dòng chỉ có trong file3.txt
    • comm -2 file3.txt file4.txt: Ẩn cột các dòng chỉ có trong file4.txt
    • comm -3 file3.txt file4.txt: Ẩn cột các dòng chung cho cả hai file
  2. Ẩn tất cả cá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 các 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ả định rằng các file đã được sắp xếp)

Ví dụ đầ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

Tóm tắt

Trong lab này, bạn đã học về mục đích và cú pháp của lệnh comm trong Linux, được sử dụng để so sánh và đối chiếu hai file đã được sắp xếp, theo từng dòng. Bạn đã khám phá cách sử dụng lệnh comm để xác định các dòng chỉ có trong mỗi file, cũng như các dòng chung cho cả hai file. Ngoài ra, bạn đã học cách tùy chỉnh đầu ra của lệnh comm bằng cách sử dụng các tùy chọn khác nhau, chẳng hạn như ẩn các cột đầu ra cụ thể.

Bạn cũng đã thực hành sử dụng lệnh comm để so sánh và đối chiếu hai file văn bản mẫu, file1.txtfile2.txt, và quan sát các định dạng đầu ra khác nhau dựa trên các tùy chọn đã sử dụng.

400+ câu lệnh phổ biến trong Linux