Awk یک زبان برنامه نویسی است که برای ویرایش داده ها و تولید گزارش ها استفاده می شود. زبان برنامه نویسی دستور awk نیازی به تدوین ندارد و به کاربر اجازه می دهد از متغیرها ، توابع عددی ، توابع رشته و عملکرهای logical استفاده کند.
Awk ابزاری است که یک برنامه نویس را قادر به نوشتن برنامه های کوچک اما مؤثر در قالب جمله هایی می کند که الگوهای متنی را که باید در هر خط یک فابل جستجو کنند و عملی را که باید هنگام یافتن یک مشابه در یک برنامه تعریف شود ، تعریف می کند. خط Awk بیشتر برای اسکن و پردازش الگو استفاده می شود. یک یا چند پرونده را جستجو می کند تا ببیند که آیا آنها دارای خطوطی هستند که با الگوهای مشخص شده مطابقت دارند و سپس اقدامات مرتبط را انجام می دهند.
Awk به اختصار نام توسعه دهندگان – Aho ، Weinberger and Kernighan است.
در ادامه با ما در شتابان هاست همراه باشید.
awk options 'selection _criteria {action }' input-file > output-file
-f program-file : Reads the AWK program source from the file program-file, instead of from the first command line argument. -F fs : Use fs for the input field separator
مثال:
پرونده متن زیر را به عنوان پرونده ورودی برای همه موارد زیر در نظر بگیرید.
$cat > employee.txt
ajay manager account 45000 sunil clerk account 25000 varun manager sales 50000 amit manager account 47000 tarun peon sales 15000 deepak clerk sales 23000 sunil peon sales 13000 satvik director purchase 80000
۱) رفتار پیش فرض Awk: به طور پیش فرض Awk تمام خط داده ها را از پرونده مشخص شده چاپ می کند:
$ awk '{print}' employee.txt
خروجی:
ajay manager account 45000 sunil clerk account 25000 varun manager sales 50000 amit manager account 47000 tarun peon sales 15000 deepak clerk sales 23000 sunil peon sales 13000 satvik director purchase 80000
در مثال بالا هیچ الگویی ارائه نشده است. بنابراین اعمال برای همه خطوط قابل استفاده است. پرینت اکشن بدون هیچ استدلالی تمام خط را بطور پیش فرض چاپ می کند ، بنابراین تمام خطوط پرونده را بدون شکست چاپ می کند.
۲) خطوطی را پرینت کنید که مطابق با الگوی داده شده باشد:
$ awk '/manager/ {print}' employee.txt
خروجی:
ajay manager account 45000 varun manager sales 50000 amit manager account 47000
در مثال بالا ، دستور awk تمام خطوط مطابق با “manager” را پرینت می کند.
۳) تقسیم یک خط در فیلدها: برای هر خط i.e ، رکورد awk ثبت شده را با کاراکتر whitespace به طور پیش فرض تقسیم می کند و آن را در متغیرهای $ n ذخیره می کند. اگر خط ۴ کلمه داشته باشد ، به ترتیب در $۱, $۲, $۳ و $۴ ذخیره می شود. همچنین ، $۰ کل خط را نشان می دهد.
$ awk '{print $1,$4}' employee.txt
خروجی:
ajay 45000 sunil 25000 varun 50000 amit 47000 tarun 15000 deepak 23000 sunil 13000 satvik 80000
در مثال بالا ، $۱ و $۴ به ترتیب زمینه های نام و دستمزد را نشان می دهد.
امیدوارم این مقاله براتون مفید بوده باشه.
ما رو تو شتابان هاست دنبال کنید. 🙂