awk Trình tạo lệnh
Tạo lệnh awk để quét mẫu và xử lý văn bản
Bắt đầu với awk
## awk là gì?
`awk` là một ngôn ngữ lập trình dùng để xử lý văn bản. Nó quét đầu vào từng dòng, tách mỗi dòng thành các trường, và chạy một chương trình gồm các quy tắc `pattern { action }` lên chúng. Rất mạnh cho việc trích xuất cột, báo cáo dạng bảng, và số học trên từng dòng.
## Cách sử dụng
1. **Nhập chương trình**: Cung cấp một chương trình `awk` chẳng hạn `{print $1}`. 2. **Thiết lập dấu phân tách trường** (tùy chọn): `-F ','` cho đầu vào CSV. 3. **Chỉ định tệp**: Nhập tệp cần xử lý. 4. **Sao chép và chạy**: Sao chép lệnh đã tạo vào terminal của bạn.
Cú pháp chương trình
Một chương trình `awk` là một chuỗi các quy tắc:
``` pattern { action } pattern { action } ```
### Biến có sẵn - `$0` — toàn bộ dòng hiện tại - `$1`, `$2`, … — trường thứ 1, thứ 2, … (tách bởi `FS`) - `NF` — số trường trong dòng hiện tại - `NR` — số thứ tự dòng hiện tại (trên toàn bộ tệp) - `FS` — dấu phân tách trường (mặc định là khoảng trắng; đặt qua `-F`)
### Pattern đặc biệt - `BEGIN { … }` — chạy một lần trước khi đọc bất kỳ đầu vào nào (thích hợp cho khởi tạo/tiêu đề) - `END { … }` — chạy một lần sau khi tiêu thụ toàn bộ đầu vào (thích hợp cho tổng cộng)
### Ví dụ - `{print $1}` — in trường đầu tiên của mỗi dòng - `{sum += $1} END {print sum}` — tính tổng cột đầu tiên - `NR == 1 {next} {print}` — bỏ qua dòng tiêu đề - `$3 > 100 {print $1, $3}` — in các dòng có trường thứ ba lớn hơn 100
### Trích dẫn Bọc chương trình trong dấu nháy đơn để `$`, `{`, `}` không bị shell diễn giải. Trình tạo này đã lo phần trích dẫn giúp bạn.
▶Làm cách nào để phân tích cú pháp tệp CSV?
▶Làm cách nào để tính tổng tích lũy?
Nếu công cụ này đã giúp ích cho bạn, hãy nghĩ đến việc mua một cốc cà phê cho tôi.
Hãy mua cho tôi một cốc cà phê nhé.