Files
nearology 99fb7f0e82 Add sitemap and styles for Persian font integration
- 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.
2026-04-28 15:27:18 +03:30

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).
  • فراموشی نقل‌قول صحیح در اسکریپت‌های چندبخشی شل.