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.