AWK - Quy trình làm việc

Để trở thành một lập trình viên AWK chuyên nghiệp, bạn cần biết nội hàm của nó. AWK tuân theo một quy trình làm việc đơn giản - Đọc, Thực thi và Lặp lại. Sơ đồ sau mô tả quy trình làm việc của AWK:

Đọc

AWK đọc một dòng từ luồng đầu vào (tệp, đường dẫn hoặc stdin) và lưu trữ trong bộ nhớ.

Hành hình

Tất cả các lệnh AWK được áp dụng tuần tự trên đầu vào. Theo mặc định, AWK thực hiện các lệnh trên mọi dòng. Chúng tôi có thể hạn chế điều này bằng cách cung cấp các mẫu.

Nói lại

Quá trình này lặp lại cho đến khi tệp kết thúc.

Cấu trúc chương trình

Bây giờ chúng ta hãy hiểu cấu trúc chương trình của AWK.

BEGIN khối

Cú pháp của khối BEGIN như sau:

Syntax

BEGIN {awk-commands}

Khối BEGIN được thực thi khi khởi động chương trình. Nó chỉ thực thi một lần. Đây là nơi tốt để khởi tạo các biến. BEGIN là một từ khóa AWK và do đó nó phải ở dạng chữ hoa. Xin lưu ý rằng khối này là tùy chọn.

Khối cơ thể

Cú pháp của khối nội dung như sau:

Syntax

/pattern/ {awk-commands}

Khối nội dung áp dụng các lệnh AWK trên mọi dòng đầu vào. Theo mặc định, AWK thực thi các lệnh trên mọi dòng. Chúng tôi có thể hạn chế điều này bằng cách cung cấp các mẫu. Lưu ý rằng không có từ khóa nào cho khối Body.

KẾT THÚC Khối

Cú pháp của khối END như sau:

Syntax

END {awk-commands}

Khối END thực hiện ở cuối chương trình. END là một từ khóa AWK và do đó nó phải ở dạng chữ hoa. Xin lưu ý rằng khối này là tùy chọn.

Hãy để chúng tôi tạo một tệp marks.txt trong đó có số thứ tự, tên học sinh, tên môn học và số điểm đạt được.

1)  Amit    Physics  80
2)  Rahul   Maths    90
3)  Shyam   Biology  87
4)  Kedar   English  85
5)  Hari    History  89

Bây giờ, hãy để chúng tôi hiển thị nội dung tệp có tiêu đề bằng cách sử dụng tập lệnh AWK.

Example

[jerry]$ awk 'BEGIN{printf "Sr No\tName\tSub\tMarks\n"} {print}' marks.txt

Khi mã này được thực thi, nó tạo ra kết quả sau:

Output

Sr No Name Sub Marks
1) Amit Physics 80
2) Rahul Maths 90
3) Shyam Biology 87
4) Kedar English 85
5) Hari History 89

Khi bắt đầu, AWK in tiêu đề từ khối BEGIN. Sau đó, trong khối nội dung, nó đọc một dòng từ tệp và thực hiện lệnh in của AWK, lệnh này chỉ in nội dung trên luồng đầu ra tiêu chuẩn. Quá trình này lặp lại cho đến khi tệp kết thúc.