از طریق منوی جستجو مطلب مورد نظر خود در وبلاگ را به سرعت پیدا کنید
10 مثال عالی از دستور Awk
سرفصلهای مطلب
دستور Awk ابزار قدرتمندی برای process داده ها. دادههای ورودی را دریافت میکند، آنها را دستکاری میکند و نتایج را در خروجی استاندارد میدهد. عملیات های مختلفی را می توان انجام داد روی ردیف ها و ستون های یک فایل
دانستن نکات ضروری دستور “awk” برای پردازش کارآمد داده ها بسیار مهم است و این پست ویژگی های کلیدی دستور “awk” را پوشش می دهد. بیایید ابتدا نحو را بررسی کنیم:
برخی از گزینه های رایج در جدول زیر آورده شده است:
گزینه | شرح |
-اف | برای تعیین جداکننده فایل |
-ف | فایلی که حاوی اسکریپت “awk” است را مشخص کنید |
-v | برای اختصاص متغیر |
بیایید به چند مثال در مورد استفاده از دستور “awk” نگاهی بیندازیم و برای نمایش یک فایل متنی به نام testFile.txt:
1. چگونه print ستونی از یک فایل با دستور awk؟
دستور “awk” را می توان برای دریافت یک ستون خاص از فایل متنی استفاده کرد. به print محتوای استفاده از فایل:
در حال حاضر، به print از ستون دوم فایل استفاده کنید:
به print بیش از یک فیلد، از دستور استفاده کنید:
اگر از کاما “” استفاده نکنید، خروجی بدون فاصله خواهد بود:
2. روش استفاده از عبارت منظم با دستور awk:
برای تطبیق رشته ها یا هر عبارتی، به عنوان مثال، از اسلش های “//” استفاده می کنیم، اگر بخواهید print نام افرادی که در حال مطالعه «تاریخ» هستند، سپس استفاده کنید:
خروجی به وضوح نشان می دهد که فقط “سام” و “تامی” در حال مطالعه دوره “تاریخ” هستند.
3. روش استفاده از عبارت رابطه ای با دستور awk:
برای مطابقت با محتوای یک فیلد خاص، می توان از عبارت رابطه ای استفاده کرد. برای تطبیق هر رشته یا عبارت با یک فیلد، فیلد را مشخص کنید و از عملگر مقایسه “~” با الگوی ارائه شده در دستور زیر استفاده کنید:
خروجی بالا هر فیلد در ستون 2 را در مقابل هر فیلدی که حاوی “is” در ستون 3 است نمایش می دهد.
و برای به دست آوردن خروجی مخالف دستور بالا از “! ~” عملگر:
برای مقایسه، ما همچنین می توانیم از عملگرهایی مانند بزرگتر از “>” و کوچکتر از “<" و مساوی "=" نیز استفاده کنیم:
خروجی اسامی افرادی را که نمره بیش از 70 گرفته اند چاپ کرده است.
4. روش استفاده از الگوی محدوده با دستور awk:
یک محدوده همچنین می تواند برای جستجو استفاده شود. به سادگی از کاما “” برای جدا کردن محدوده همانطور که در دستور زیر ذکر شده است استفاده کنید:
خروجی موضوعات محدوده از “Joel” تا “Marlene” را از ستون 2 نشان می دهد. ما می توانیم از علامت مساوی دوگانه “==” برای تعریف یک محدوده استفاده کنیم. مثال زیر را ببینید:
خروجی نام افراد را از ستون 2 برای محدوده علامت “70 تا 80” از ستون 4 نمایش می دهد.
5. روش ترکیب الگو با استفاده از عملگر منطقی:
استفاده از عملگرهای منطقی مانند OR “||”، و “&&” به شما امکان می دهد الگوها را برای جستجو ترکیب کنید. از دستور زیر استفاده کنید
دستور بالا نام افراد را در برابر فیلد چهارم بیشتر از 80 و فیلد ششم بزرگتر از 0.4 چاپ می کند. و تنها دو رکورد شرایط را برآورده می کنند.
6. عبارات ویژه دستور awk:
دو عبارت خاص وجود دارد، “شروع” و ”پایان”:
BEGIN: برای انجام یک عمل قبل از پردازش داده ها
END: برای انجام یک عمل پس از پردازش داده ها
7. متغیر داخلی مفید دستور awk:
دستور awk دارای متغیرهای مختلفی است که به پردازش داده ها کمک می کند:
متغیر | شرح |
NF | تعداد فیلدهای داده را نشان می دهد |
NR | این شماره رکورد فعلی را نشان می دهد |
نام فایل | نام فایلی که در حال حاضر در حال پردازش است را نمایش می دهد |
FS و OFS | جداکننده میدان و جداکننده میدان خروجی |
RS و ORS | جداکننده رکورد و خروجی رکورد را جدا می کند |
مثلا:
ما از “END” استفاده می کنیم، اما اگر از “BEGIN” استفاده کنید، خروجی 0 فیلد و 0 رکورد را نشان می دهد.
8. روش تغییر جداکننده رکورد:
جداکننده پیش فرض در رکورد معمولاً فاصله است. اگر یک کاما “”، یا “نقطه” وجود دارد. به عنوان جداکننده میدان خود، سپس از گزینه “FS” به همراه جداکننده استفاده کنید.
بیایید فایل دیگری داشته باشیم که در آن فیلدهای داده با ویرگول “:” از هم جدا شوند:
$awk ‘شروع {FS= “:”} {print 2 دلار}testFile2.txt
از آنجایی که جداکننده فایل یک دونقطه است، اما دستور “awk” حتی برای فایل هایی مانند این مفید است، به سادگی از گزینه “FS” استفاده کنید.
از “-F” نیز می توان استفاده کرد:
جداکننده رکورد پیش فرض “newline” است و برای تنظیم جداکننده رکورد روی “:” از:
9. اقدامات Awk:
اکشنهای Awk برنامههای کوچکی هستند که با براکتهای «{}» احاطه شدهاند و بیش از یک عبارت دارند که با نیمکون «;» از هم جدا شدهاند.
بیشترین استفاده از دستور “awk” عبارت است از “print” بیانیه. به عنوان مثال، به print یک متن با هر رکورد، از رشته متن در نقل قول استفاده کنید:
بیایید یک عملیات جمع ساده را با استفاده از awk انجام دهیم:
10. ایجاد یک برنامه awk:
بیایید با برنامه نویسی “awk” شروع کنیم، برنامه نویسی ارائه شده در زیر به سادگی ضرب را انجام می دهد:
من=2
در حالی که(j<4)
{
print «تکثیر 2 با ” j ” است ” i*j;
j++
}
}
برنامه را با نام ذخیره کنیدmyCode.awkو برای اجرای آن، آن را باز کنید terminal و تایپ کنید:
نتیجه:
دستور “awk” یک دستور مفید است processاسکن داده های فایل های متنی، مانند جداسازی هر فیلد خاصی از یک فایل. ما از دستور “awk” استفاده می کنیم. جستجوی هر چیزی را به هر شکل یا الگوی از فایل های متنی آسان تر می کند. در این راهنما، ما اصول اولیه دستور “awk” و استفاده از آن را درک می کنیم. دستور “awk” داده ها را تایید می کند، گزارش تولید می کند و حتی فایل ها را تجزیه می کند. استفاده از دستورات ساده “awk” همچنین کاربران را قادر می سازد تا برنامه های کوچکی را بنویسند process داده ها کارآمدتر
لطفا در صورت وجود مشکل در متن یا مفهوم نبودن توضیحات، از طریق دکمه گزارش نوشتار یا درج نظر روی این مطلب ما را از جزییات مشکل مشاهده شده مطلع کنید تا به آن رسیدگی کنیم
زمان انتشار: 1402-12-31 01:19:04