اسکن الگو (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 ببین تا راحت پیمایش کنی.
تمرین گام به گام
- فایل CSV آماده کن. مثل
example_data.csv. - با
-F","جداکننده را مشخص کن. - ستون اول را چاپ کن:
{print $1}. - یک برچسب با
-vاضافه کن. - مجموع ستون سوم را با
ENDحساب کن.
برای تکمیل مسیر متن، جستجوی متن با grep را ببین. سپس به ویرایش الگو با sed برو. همچنین آموزش awk را نشان گذاری کن.
جمع بندی سریع
- awk برای اسکن و پردازش متن است.
- -F جداکننده ستون ها را تعیین می کند.
- -v مقدار بیرونی را به اسکریپت می دهد.
- END برای چاپ نتیجه نهایی است.