آشنایی با کاربردهای grep و Regular Expression
Regular Expression که به صورت خلاصه Regex خوانده میشود راهکاری است که از آن طریق میتوان یک Pattern (پترن یا الگو) خاصی را در یک متن یافت. بسیاری از ابزارهای ویرایش متن همچون vi و یا زبانهای برنامه نویسی مطرح همچون پایتون، روبی، پرل، پی اچ پی و غیره هم به خوبی با رجیکس کار میکنند و این نشان از اهمیت درک Regular Expression ها دارد. در جدول زیر، برخی از کاربردهای رایج رجیکس را لیست کردهایم:
کاربرد | الگوی رگولار اکسپرشن |
هر یک کاراکتر محاسبه خواهد شد. | . یا نقطه |
حرف a یا z تطبیق داده خواهد شد. | a | z |
انتهای یک استرینگ -متن- تطبیق داده خواهد شد. | $ |
صفر یا بیش از یک آیتم تطبیق داده خواد شد. | * |
grep هم کامندی است که به عنوان ابزاری برای جستجو در متن به منظور یافتن الگویی خاص در فایلهای مختلف مورد استفاده قرار میگیرد که به راحتی میتوان این ابزار را با دستور رجیکس مورد استفاده قرار داد.
برای روشنتر شدن کاربرد ابزار grep ابتدا به مسیر زیر میرویم:
& cd /usr/share/common-licenses
حال دستور زیر را وارد میکنیم:
grep "GNU" GPL-3
اولین پارامتر که “GNU” است به عنوان الگویی است که به دنبال آن می گردیم و دومین پارامتر هم نام فایلی است که قرار است این الگو را داخل آن جستجو کنیم. به عنوان خروجی دستور فوق داریم:
GNU GENERAL PUBLIC LICENSE The GNU General Public License is a free, copyleft license for the GNU General Public License is intended to guarantee your freedom to GNU General Public License for most of our software; it applies also to Developers that use the GNU GPL protect your rights with two steps: "This License" refers to version 3 of the GNU General Public License. 13. Use with the GNU Affero General Public License. under version 3 of the GNU Affero General Public License into a single but the special requirements of the GNU Affero General Public License, the GNU General Public License from time to time. Such new versions will Program specifies that a certain numbered version of the GNU General GNU General Public License, you may choose any version ever published versions of the GNU General Public License can be used, that proxy's it under the terms of the GNU General Public License as published by GNU General Public License for more details. You should have received a copy of the GNU General Public License For more information on this, and how to apply and follow the GNU GPL, see The GNU General Public License does not permit incorporating your program the library. If this is what you want to do, use the GNU Lesser General
حال قصد داریم دستور grep را با استفاده از یکی از رگولار اکسپرشن هایی که در بالا معرفی کردیم مورد استفاده قرار دهیم. پیش از این گفتیم که وقتی نقطه (.) در رگولار اکسپرشن استفاده میشود، به معنی «هر یک کاراکتری که وجود داشته باشد» است. برای روشنتر شدن این مطلب، دستور زیر را وارد میکنیم:
$ grep ".ublic" GPL-3
به عنوان خروجی فوق، کلیه ی واژگانی که انتهای آنها ublic است و حرف ابتدایی آنها هر چیزی میتواند باشد در ترمینال به صورت رنگی نمایش داده خواهند شد.