Cách sử dụng lệnh awk trong Bash

Cach Su Dung Lenh Awk Trong Bash



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 '!//' < tên tệp.txt >


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

#!bin/bash
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 $}' < tên tệp.txt >


Ở đâ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 đó.

#!/bin/bash
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.