فهرست سرفصل‌های Bash
خانه (Home) مقدمه (Intro) شروع به کار (Get Started) فرمان ها (Commands) فهرست فایل ها (List (ls)) تغییر پوشه (Change Dir (cd)) نمایش مسیر (Print Dir (pwd)) چاپ متن (Echo (echo)) ادغام فایل ها (Concatenate (cat)) کپی کردن (Copy (cp)) جابه جایی (Move (mv)) حذف (Remove (rm)) ساخت/به روزرسانی زمان (Timestamp (touch)) ساخت پوشه (Make Dir (mkdir)) راهنما (Manual (man)) نام مستعار (Alias) جستجوی متن (Search Text (grep)) اسکن الگو (Pattern Scan (awk)) ویرایشگر جریان (Stream Editor (sed)) برش بخش ها (Remove Section (cut)) مرتب سازی خطوط (Sort Lines (sort)) نمایش انتها (View End (tail)) نمایش ابتدا (View Start (head)) وضعیت فرایندها (Process Status (ps)) فهرست فرایندها (List Processes (top)) فضای دیسک (Disk Space (df)) مصرف پوشه ها (Directory Usage (du)) مصرف حافظه (Memory Usage (free)) پایان دادن (Terminate (kill)) زمان روشن بودن (Uptime) پینگ (Ping) انتقال URL (URL Transfer (curl)) دانلودکننده (Downloader (wget)) اتصال راه دور (Remote Connect (ssh)) کپی امن (Secure Copy (scp)) همگام سازی فایل ها (File Sync (rsync)) فشرده سازی (Compress (zip)) استخراج (Extract (unzip)) بایگانی TAR (TAR Archive) مالکیت (Ownership) تغییر مجوزها (Modify (chmod)) تغییر مالکیت (Ownership (chown)) تغییر گروه (Group (chgrp)) سینتکس (Syntax) اسکریپت (Script) متغیرها (Variables) انواع داده (Data Types) عملگرها (Operators) اگر…وگرنه (If...Else) حلقه ها (Loops) توابع (Functions) آرایه ها (Arrays) زمان بندی (Schedule (cron)) تمارین (Exercises) آزمون (Quiz) گواهینامه (Certificate)
نتیجه‌ای برای جستجو یافت نشد.
مستندات زبان Bash

Bash — اسکن الگو (Pattern Scan (awk))

آخرین بروزرسانی: 1404/08/17

اسکن الگو (Pattern Scan (awk))

می خواهی متن را مثل حرفه ای ها پردازش کنی؟ با «awk» می شود الگوها را اسکن کرد. «اسکن الگو (Pattern Scan)» یعنی جستجوی بخش های خاص متن. مثل پیدا کردن نمرات ریاضی در کارنامه بلند.

آشنایی سریع با awk

دستور awk برای پردازش متن و گزارش گیری است. برای فایل های متنی عالی است.

مثال ها از فایل example_data.csv استفاده می کنند.

id,Created,Amount,Currency,Description,Customer
1,2024-11-01,100,USD,Payment,John Doe
2,2024-11-02,200,EUR,Refund,Jane Smith
3,2024-11-03,150,USD,Purchase,Emily Davis
4,2024-11-04,175,GBP,Subscription,Michael Brown

مشاهده در ادیتور

نمایش ستون ها با جداکننده فیلد (-F)

«جداکننده فیلد (Field Separator)» علامتی است که ستون ها را جدا می کند. در CSV، جداکننده , است.

awk -F"," '{print $1}' example_data.csv
# Output:
# id
# 1
# 2
# 3
# 4

مشاهده در ادیتور

ست کردن متغیر بیرونی (-v)

«متغیر (Variable)» ظرف نگهداری مقدار است. با -v مقدار بده و چاپ کن.

awk -v var="Amount:" '{print var, $3}' example_data.csv
# Output:
# Amount: Amount
# Amount: 100
# Amount: 200
# Amount: 150
# Amount: 175

مشاهده در ادیتور

محاسبه روی داده ها (بلوک END)

می توانی مجموع ستون ها را حساب کنی. بلوک END در پایان اجرا می شود.

awk -F"," '{sum += $3} END {print sum}' example_data.csv
# Output:
# 625

مشاهده در ادیتور

گزینه های مهم awk

  • -F: تعیین جداکننده فیلدها.
  • -v: مقداردهی متغیر بیرونی.
  • -f: اجرای برنامه awk از فایل.

نکته: اگر خروجی زیاد است، با less ببین تا راحت پیمایش کنی.

تمرین گام به گام

  1. فایل CSV آماده کن. مثل example_data.csv.
  2. با -F"," جداکننده را مشخص کن.
  3. ستون اول را چاپ کن: {print $1}.
  4. یک برچسب با -v اضافه کن.
  5. مجموع ستون سوم را با END حساب کن.

برای تکمیل مسیر متن، جستجوی متن با grep را ببین. سپس به ویرایش الگو با sed برو. همچنین آموزش awk را نشان گذاری کن.

جمع بندی سریع

  • awk برای اسکن و پردازش متن است.
  • -F جداکننده ستون ها را تعیین می کند.
  • -v مقدار بیرونی را به اسکریپت می دهد.
  • END برای چاپ نتیجه نهایی است.