Lệnh wc là từ viết tắt của word count (đếm từ). Lệnh này cho phép người dùng đếm số từ, số dòng và ký tự trong tệp, đồng thời kết hợp cùng các lệnh khác để xử lý dữ liệu một cách nhanh chóng và hiệu quả. Trong bài viết này, Vietnix sẽ giới thiệu các chức năng, tùy chọn và một số ví dụ minh họa về cách sử dụng lệnh wc. Mời bạn cùng tham khảo tại đây.
Lệnh wc trong Linux là gì?
Lệnh wc (word count) là một lệnh trong Linux, được dùng để xác định số lượng dòng, số từ, số ký tự hay số byte của một hoặc nhiều file khi được cung cấp làm đối số. Cú pháp của lệnh này sẽ bao gồm một hoặc nhiều OPTION và một hoặc nhiều file dùng làm đối số.
wc [OPTION]... [FILE]...
8 tùy chọn hữu ích cho lệnh wc trong Linux
Dưới đây là 8 tùy chọn hữu ích cho lệnh wc trong Linux phổ biến nhất:
man wc
Tùy chọn | Mô tả |
---|---|
-w, – -words | Hiển thị số lượng từ. |
-l, – -lines | Hiển thị số lượng dòng. |
-m, – -chars | Hiển thị số lượng ký tự. |
-c, – -bytes | Hiển thị số byte. |
-L, – -max-line-length | Hiển thị thông tin về độ dài của dòng dài nhất. |
– -files0-from | Lấy input từ các file được chỉ định bởi tên kết thúc bằng ký tự NUL trong một file. |
– -version | Hiển thị thông tin phiên bản của file. |
– -help | Hiển thị tất cả trợ giúp sẵn có. |
Sau khi tìm hiểu về cú pháp và các tùy chọn lệnh wc phổ biến, chúng ta sẽ đến với một số ví dụ chi tiết. Cần lưu ý là trong 15 ví dụ này, Vietnix sẽ sử dụng 2 file có tên là city và country.
15 ví dụ phổ biến về lệnh wc trong Linux
- Hiển thị số lượng từ, dòng và ký tự cho một file
- Hiển thị số từ, dòng và ký tự cho nhiều file
- Hiển thị nhiều file có mẫu tên chung
- Chỉ hiển thị số từ bằng lệnh wc trong Linux
- Chỉ hiển thị số dòng bằng lệnh wc trong Linux
- Chỉ hiển thị số ký tự bằng lệnh wc trong Linux
- Hiển thị số byte bằng lệnh wc trong Linux
- Chỉ hiển thị cột đầu tiên bằng lệnh wc và cut trong Linux
- Hiển thị độ dài của dòng dài nhất trong file
- Hiển thị số lượng các mục trong một directory
- Kết hợp lệnh find với lệnh wc trong Linux
- Kết hợp lệnh grep với lệnh wc trong Linux
- Kết hợp lệnh cat với lệnh wc trong Linux
- Đếm số lượng Process đang chạy bằng lệnh wc trong Linux
- Đọc Input từ các file được chỉ định bởi tên kết thúc bằng ký tự NUL trong một file
Ví dụ 1: Hiển thị số lượng từ, dòng và ký tự cho một file
Theo mặc định, lệnh wc sẽ hiển thị output với 4 cột là số dòng, số từ, số ký tự và tên file. Điều bạn cần làm là cung cấp đối số – tên file cần tìm. Dưới đây là cách thực hiện cho file city. Dưới đây là cách thực hiện cho file city:
Bước 1: Mở Ubuntu Terminal.
Bước 2: Nhập vào command prompt lệnh sau rồi bấm Enter:
wc city
Khi đó, màn hình sẽ hiển thị kết quả như hình ảnh minh họa bên dưới. Trong đó, thứ tự của các cột lần lượt là 6 – 7 – 41 – city sẽ tương ứng với số dòng – số từ – số ký tự – tên file.
Ví dụ 2: Hiển thị số từ, dòng và ký tự cho nhiều file
Với lệnh wc trong Linux, bạn có thể sử dụng cho nhiều file cùng lúc. Ví dụ dưới đây, chúng ta sẽ xác định số từ, số dòng và số ký tự cho 2 file là city và country. Hãy nhập lệnh sau vào command prompt:
wc city country
Sau khi bấm Enter, bạn sẽ nhìn thấy các file khác nhau được liệt kê riêng biệt. Ngoài ra, sẽ có thêm một dòng bổ sung ở cuối cùng là total cho biết tổng số lượng của tất cả các file.
Ví dụ 3: Hiển thị nhiều file có mẫu tên chung
Khi các file đều tuân thủ một mẫu cụ thể, bạn có thể sử dụng lệnh wc và so khớp với “wildcard pattern” (mẫu ký tự đại diện) để tiết kiệm thời gian nhập từng file một. Ví dụ như file city và country đều có chữ cái bắt đầu là “c”, ta có câu lệnh sau:
wc c*
Với câu lệnh trên, bạn sẽ nhận được số dòng, số từ và số ký tự của các file có tên bắt đầu bằng chữ c.
Ví dụ 4: Chỉ hiển thị số từ bằng lệnh wc trong Linux
Để xác định số từ của một file, bạn có thể sử dụng tùy chọn -w với cú pháp đầy đủ là wc -w <file_name>. Ví dụ dưới đây sẽ sử dụng lệnh này để xem số từ của file city:
wc -w city
Lúc này, kết quả sẽ chỉ còn 2 cột thay vì 4 cột như hình minh họa bên dưới, với cột đầu tiên là số từ và cột thứ hai là tên file.
Ví dụ 5: Chỉ hiển thị số dòng bằng lệnh wc trong Linux
Tương tự, bạn cũng có thể sử dụng lệnh wc để xác định mỗi số dòng của file với tùy chọn -l. Cụ thể:
wc -l city
Với lệnh này, hệ thống sẽ hiển thị 2 cột là số dòng và tên file là city.
Ví dụ 6: Chỉ hiển thị số ký tự bằng lệnh wc trong Linux
Tùy chọn -m trong lệnh wc cho phép bạn xác định mỗi số ký tự và lượt bỏ số từ, số dòng trong kết quả hiển thị. Cụ thể, ta có ví dụ sau:
wc -m city
Ngay sau khi chạy lệnh trên, màn hình sẽ hiển thị số ký tự của file mà bạn đã chỉ định.
Ví dụ 7: Hiển thị số byte bằng lệnh wc trong Linux
Nếu bạn muốn kiểm tra số byte của file, hãy sử dụng tùy chọn -c:
wc -c city
Sau khi bấm enter, kết quả sẽ hiển thị như bên dưới.
Ví dụ 8: Chỉ hiển thị cột đầu tiên bằng lệnh wc và cut trong Linux
Lệnh wc mặc định hiển thị tên file cùng với kết quả. Tuy nhiên, bạn có thể ẩn cột tên file bằng cách kết hợp lệnh cut và sử dụng pipe (dấu |) để chuyển dữ liệu giữa các lệnh.
Để làm được điều đó, hãy nhập lệnh sau:
wc -w city | cut -c 1-2
Sau khi bấm Enter, kết quả sẽ hiển thị với 1 cột duy nhất như hình minh họa bên dưới:
Lưu ý: Trong ví dụ trên, lệnh cut hiển thị 2 ký tự đầu tiên. Nếu bạn muốn xem 3 hay nhiều ký tự đầu tiên, bạn có thể đổi thành 1-3 hoặc bất kỳ số nào tùy ý.
Ví dụ 9: Hiển thị độ dài của dòng dài nhất trong file
Để xác định độ dài của dòng dài nhất trong file, bạn có thể chạy lệnh wc với flag -l như sau:
wc -L country
Ở đây, độ dài của dòng dài nhất trong file country sẽ là 8 ký tự:
Ví dụ 10: Hiển thị số lượng các mục trong một directory
Bạn có thể xác định số lượng mục có trong một directory bằng cách chuyển đầu ra của lệnh ls vào lệnh wc thông qua pipe (|). Ví dụ bên dưới, ta sẽ sử dụng lệnh sau cho /usr/bin:
ls -l /usr/bin | wc -l
Lúc này, tùy theo từng hệ thống mà output sẽ hiển thị như sau:
Ví dụ 11: Kết hợp lệnh find với lệnh wc trong Linux
Nếu bạn có một directory tên walid chứa các file có phần mở rộng là “.txt”, bạn có thể sử dụng lệnh find trong Linux để tìm các file này và đếm file trong directories bằng wc -l. Dưới đây là một ví dụ cụ thể:
find . -name “*.txt” | wc -l
Sau khi chạy câu lệnh trên, ta nhận được kết quả như sau:
Ví dụ 12: Kết hợp lệnh grep với lệnh wc trong Linux
Trên directory /var/log trên Linux có rất nhiều file log và bạn có thể đếm số lượng file log có chứa cụm từ nhất định bằng cách kết hợp lệnh grep trong Linux với lệnh wc. Ví dụ dưới đây, chúng ta sẽ tìm kiếm số lượng file log có từ error.
Bước 1: Hãy nhập lệnh sau vào command prompt rồi bấm Enter.
sudo grep -c "error" *.log | wc -l
Bước 2: Tiếp theo, bạn nhập Password (nếu có) rồi tiếp tục bấm Enter để xem kết quả output. Trong hình minh họa này, có đến 26 file log chứa từ error:
Ví dụ 13: Kết hợp lệnh cat với lệnh wc trong Linux
Bạn cũng có thể chuyển output của lệnh cat trong Linux trong Linux vào lệnh wc trên Linux để nhanh chóng đếm số dòng, từ hoặc ký tự trong file. Với ví dụ dưới đây, chúng ta sẽ đếm số lượng từ trong file city bằng câu lệnh:
cat city | wc -w
Lúc này, kết quả sẽ hiển thị như sau. Ngoài ra, bạn cũng có thể sử dụng cách này để loại bỏ tên file ở output.
Ví dụ 14: Đếm số lượng Process đang chạy bằng lệnh wc trong Linux
Với lệnh ps -e, bạn có thể liệt kê tất cả các process (tiến trình) đang chạy trên hệ thống. Để biết có bao nhiêu process, hãy chuyển output của lệnh ps trong Linux vào lệnh wc bằng câu lệnh sau:
ps -e | wc -l
Kết quả sẽ hiển thị số lượng process đang chạy trên máy tính, trong ví dụ minh họa bên dưới là 292.
Ví dụ 15: Đọc Input từ các file được chỉ định bởi tên kết thúc bằng ký tự NUL trong một file
Lệnh wc cho phép người dùng đưa nhiều tên file kết thúc bằng ký tự NUL vào một file và đọc input từ file đó. Trước tiên, bạn cần tạo một file mới bằng lệnh find (ví dụ input) để chứa các tên file kết thúc bằng ký tự NUL, sau đó đọc đầu vào từ file input bằng lệnh wc với tùy chọn –files0-from. Hãy nhập các câu lệnh sau:
find * -print0 > input
wc --files0-from=input
Giả sử trong directory walid có hai file là hello.txt và hi.txt, lệnh find sẽ tạo file input chứa tất cả các tên file của directory walid, sau đó lệnh wc lấy dữ liệu input từ file input và hiển thị kết quả với số dòng, số từ, số ký tự như hình minh họa bên dưới:
Câu hỏi thường gặp
Lệnh wc có thể đọc từ đầu vào chuẩn không?
Có. Ngoài việc đọc từ file, lệnh wc còn có thể đọc từ đầu vào chuẩn. Nhờ vậy, bạn có thể đếm số từ, số dòng, số ký tự của một nội dung không được lưu trong một file cụ thể. Để làm được điều đó, bạn chỉ cần: Nhập lệnh wc > Enter > Nhập văn bản > Bấm Ctrl + D. Lúc này, lệnh wc sẽ hiển thị kết quả trên command prompt.
Tôi có thể biết phiên bản lệnh wc trong Linux không?
Có, bạn có thể sử dụng lệnh wc với tùy chọn –version để xem version wc hiện tại đang chạy trên hệ thống của mình. Câu lệnh cụ thể sẽ là: wc --version
Lệnh đếm từ trong Linux là gì?
Lệnh đếm từ trong Linux là lệnh wc (word count), cho phép người dùng xác định số từ, số dòng, số ký tự hoặc số byte của file mà bạn cung cấp trong lệnh. Ví dụ, nếu muốn hiển thị số từ của file hello.txt, ta có lệnh sau:wc -w hello.txt
Lệnh wc trong Linux có thể đếm đầu ra của lệnh khác không?
Có. Bạn có thể sử dụng toán tử pipe – dấu “|” để chuyển output của lệnh làm input cho lệnh wc. Chẳng hạn như, lệnh ls -l | wc sẽ cung cấp số từ, số dòng và số ký tự của danh sách tài liệu chi tiết trong directory làm việc hiện tại của người dùng.
Lời kết
Bên trên là tính năng và một số ví dụ về cách sử dụng lệnh wc trong Linux. Có thể thấy rằng, đây là một lệnh khá hữu ích – nhất là khi bạn biết cách kết hợp với các lệnh khác. Ngoài ra, đừng quên chia sẻ để mọi người cùng tham khảo và áp dụng trong công việc của mình.