Files
khorasan-doc/docs/lesson2-11.md
T
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

59 lines
1.7 KiB
Markdown

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