99fb7f0e82
- Created a new sitemap.xml file for better SEO. - Added a compressed version of the sitemap as sitemap.xml.gz. - Introduced extra.css for custom styles, including Persian font support (IRANSansX). - Defined font-face rules for regular and bold styles of IRANSansX. - Implemented various text styles and layout adjustments for better readability. - Enhanced Mermaid diagram styles to support Persian text rendering.
1.7 KiB
1.7 KiB
درسنامه ۲-۱۱: مقدمهای بر awk
awk یک ابزار قدرتمند پردازش متن سطربهسطر با الگو و عمل (pattern-action) است.
ساختار پایه
awk 'شرط {عمل}' FILE
مثالهای رایج
# چاپ ستونهای مشخص (جداکنندهٔ پیشفرض: فاصله/تب)
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 نام و امتیاز را چاپ کنید.
- جمع یک ستون عددی را محاسبه کنید.
نکات و مثالهای بیشتر
-
تعیین جداکنندهٔ خروجی سفارشی:
awk -F, 'BEGIN{OFS=","} {print $1,$3}' data.csv -
افزودن سرستون و قالببندی خروجی:
awk -F, 'BEGIN{print "name,score"} {print $1 "," $2}' scores.csv -
استفاده از شرط و else:
awk '$3 >= 60 {pass++} $3 < 60 {fail++} END{print pass, fail}' scores.txt -
انتخاب سطرهای دارای تطابق regex:
awk '/ERROR/ {print NR ":", $0}' app.log
خطاهای رایج
- قاطیکردن جداکنندهٔ ورودی (
-F) با جداکنندهٔ خروجی (OFS). - فراموشی نقلقول صحیح در اسکریپتهای چندبخشی شل.