Khi làm việc trong môi trường dòng lệnh, điều cần thiết là phải hiểu rõ về các lệnh khác nhau có sẵn để quản lý tệp, thư mục và dữ liệu khác một cách hiệu quả. Một lệnh như vậy là lệnh 'awk'. awk là một tiện ích mạnh mẽ được sử dụng để xử lý và thao tác các tệp văn bản trong môi trường Unix/Linux. Bài viết này sẽ giải thích lệnh ‘awk’ là gì và cách sử dụng nó một cách hiệu quả.
Lệnh 'awk' là gì?
Lệnh 'awk' là một công cụ mạnh mẽ để thao tác và xử lý các tệp văn bản trong môi trường Unix/Linux. Nó có thể được sử dụng để thực hiện các tác vụ như khớp mẫu, lọc, sắp xếp và thao tác dữ liệu. awk chủ yếu được sử dụng để xử lý và thao tác dữ liệu theo cách có cấu trúc.
Cách sử dụng lệnh awk
awk là một công cụ dòng lệnh có thể được sử dụng theo nhiều cách khác nhau. Nó có thể được gọi trực tiếp từ dòng lệnh hoặc nó có thể được sử dụng cùng với tập lệnh shell. Dưới đây là một số ví dụ về cách sử dụng awk:
Ví dụ 1: Đếm số dòng trong tệp
Để đếm số dòng trong một tệp, bạn có thể sử dụng cú pháp awk sau:
awk 'KẾT THÚC{in NR}' < tên tệp.txt >
Ở đây, “NR” là một biến tích hợp chứa số lượng bản ghi (dòng) được xử lý bởi awk. Từ khóa “END” yêu cầu awk thực thi lệnh này sau khi tất cả các dòng trong tệp đã được xử lý. Ở đây tôi đã tạo một tệp văn bản tệp cho mục đích minh họa và sau đó sử dụng cú pháp trên trong tập lệnh shell đó là:
#!/bin/bash
awk 'KẾT THÚC{in NR}' testfile.txt
Tệp văn bản tôi tạo có hai dòng và khi lệnh awk được sử dụng, đầu ra được hiển thị là 2, bạn có thể thấy tệp văn bản tôi đã tạo trong hình ảnh bên dưới:
Ví dụ 2: Lọc dữ liệu
awk có thể được sử dụng để lọc dữ liệu dựa trên các tiêu chí cụ thể và đây là cú pháp nên sử dụng cho mục đích đó:
awk '!/
Chẳng hạn, bạn có thể sử dụng lệnh bên dưới để lọc ra tất cả các dòng trong tệp có chứa từ “Xin chào”.
awk '!/Xin chào/' testfile.txt
Trong ví dụ này, dấu “!” ký hiệu phủ nhận tìm kiếm biểu thức chính quy, vì vậy tất cả các dòng không chứa từ “Xin chào” sẽ được in. Tôi đã sử dụng cùng một tệp văn bản như trong ví dụ trước nên đây là đầu ra của tập lệnh đã cho ở trên:
Ví dụ 3: Trích xuất các trường cụ thể
awk cũng có thể được sử dụng để trích xuất các trường cụ thể từ một tệp. Ví dụ: nếu bạn có một tệp chứa danh sách tên và địa chỉ và bạn chỉ muốn trích xuất tên, bạn có thể sử dụng lệnh sau:
awk '{in $
Ở đây để minh họa, tôi đã in trường đầu tiên của cùng một tệp văn bản và “$1” đại diện cho trường đầu tiên trong mỗi dòng của tệp. Lệnh “print” yêu cầu awk chỉ in trường đó.
awk '{in $1}' testfile.txt
Trong tệp văn bản, mục đầu tiên của dòng đầu tiên là “This” và mục đầu tiên của dòng thứ hai là “Xin chào”, vì vậy đây là đầu ra của mã đã cho:
Phần kết luận
Lệnh awk là một công cụ mạnh mẽ được sử dụng để thao tác và xử lý các tệp văn bản. Nó cho phép bạn thực hiện nhiều thao tác khác nhau trên tệp văn bản, chẳng hạn như in các cột cụ thể, tìm kiếm mẫu và tính tổng. Bằng cách nắm vững kiến thức cơ bản về awk, bạn có thể hợp lý hóa quy trình làm việc của mình và trở thành người dùng Linux hoặc Unix hiệu quả và hiệu quả hơn.