درسنامه ۲-۱۱: مقدمهای بر awk
awk یک ابزار قدرتمند پردازش متن سطربهسطر با الگو و عمل (pattern-action) است.
ساختار پایه
مثالهای رایج
# چاپ ستونهای مشخص (جداکنندهٔ پیشفرض: فاصله/تب)
awk '{print $1, $3}' data.txt
# تعیین جداکنندهٔ سفارشی (مثلاً CSV)
awk -F, '{print $1 "," $3}' data.csv
# فیلتر: فقط سطرهایی که ستون سومشان > 80 است
awk '$3 > 80 {print $0}' scores.txt
# جمع مقادیر یک ستون و چاپ مجموع
awk '{sum += $2} END {print sum}' prices.txt
نکته: وقتی نیازها از cut/grep فراتر رفت، معمولاً awk انتخاب بهتری است.
تمرین کوتاه
- از یک فایل CSV نام و امتیاز را چاپ کنید.
- جمع یک ستون عددی را محاسبه کنید.
نکات و مثالهای بیشتر
- تعیین جداکنندهٔ خروجی سفارشی:
- افزودن سرستون و قالببندی خروجی:
- استفاده از شرط و else:
- انتخاب سطرهای دارای تطابق regex:
خطاهای رایج
- قاطیکردن جداکنندهٔ ورودی (
-F) با جداکنندهٔ خروجی (OFS). - فراموشی نقلقول صحیح در اسکریپتهای چندبخشی شل.