احتمالاً یکی از مواردی که همه افراد ممکن است یک زمانی با آن مواجه شوند جستجو در فایل ها در محیط لینوکس است.
همانطور که میدانید دستور grep برای جستجو در نظر گرفته شده است.
ما قصد داریم در زیر نحوه جستجو در فایلها برای یافتن یک کلمه را آموزش دهیم.
دستور زیر را ملاحظه فرمایید.
grep “^Subject:.*HELP.*” /home/squire/mbox
فرمان بالا جهت جستجو در فایل mbox در مسیر فوق برای خطی با عنوان Subject که ابتدای آن میتواند هر تعداد کاراکتر باشد و در آن خط کلمه HELP با حروف بزرگ و بعد از آن هرچه باشد میگردد.
دستور grep بالا نتیجه را برای شما نمایش خواهد داد.
دستور grep سوئیچ های اضافی دیگری هم دارد که در ادامه شرح داده میشود.
-c2
سویچ بالا باعث میشود فقط 2 خط نمایش داده شود.
-n
دستور بالا شماره خط را در فایل نمایش میدهد.
-H
سوئیچ بالا نام فایلی که در آن پیدا شده است نمایش داده میشود و زمانی مفید است که شما در فایل های متعددی در حال جستجو هستید.
-r
دستور فوق هم برای جستجو در داخل مسیر و دایرکتوری ها و بصورت recursive مفید است.
-help
سوئیچ بالا راهنمای استفاده از دستور grep را به نمایش میگذارد.
در صورتی که میخواهد در گروهی از فایل ها به جستجو بپردازید از فرمان زیر در محیط فرمان لینوکس استفاده کنید :
grep -i “morris” ~/org/*.txt
دستور فوق به جستجو در فایل های txt در مسیر فوق برای کلمه morris صرف نظر از حروف بزرگ و کوچکش می پردازد.
شما میتوانید از دستور grep برای فیلتر کردن نتایج یک دستور دیگر نیز استفاده نمایید.
دستور زیر را مشاهده نمایید.
ls /home/squire/data | grep “1257”
دستور فوق فایل های مجود در مسیر data را به نمایش میگذارد و دستور grep باعث میشود خطهایی که در آن چهار رقم 1257 وجود دارد فیلتر و نمایش داده شود.
در دستور فوق مسئولیت grep فیلتر کردن خروجی دستور ls است.