به دنبال یادگیری بیشتر - اطلاعات بیشتر در مورد من در: hesij.ir
دستور grep در لینوکس

اگر با ترمینال لینوکس کار کرده باشید احتمالا به دستور grep برخورد کردید، حالا قصد داریم تا کمی بیشتر با این دستور آشنا شیم.
این دستور مخفف کلمات Global Regular Expression Print است که کارش جستجوی یک عبارت و یا الگو بین فایل یا فایلهایی (یا رشتهها) میباشد.
این دستور به طور کلی از ۳ بخش تشکیل شده است:
بخش اول : دستور grep
بخش دوم: عبارت یا الگویی که قصد جستجوی آن را داریم
و بخش سوم نام فایل یا فایلهایی که میخواهیم در آنها به جستجو بپردازیم.
grep linxu sample.txtاین دستور به دنبال کلمهی linxu در فایل sample.txt میگردد و در صورتی که موجود باشد تمام خطی که شامل این کلمه بوده است را برمیگرداند.
برای این که همین کلمه را بین چند فایل جستجو کنیم کافی است که نام فایل ها را با space از هم جدا کنیم :
grep linux sample1.txt sample2.txt sample3.txtو مجدد اگر این کلمه در هرکدام از این فایل ها که باشد این بار علاوه بر این که خطی که شامل این کلمه بوده چاپ میشود نام فایل هم در ابتدا چاپ میشود
گاهی اوقات نیاز داریم که بین تمام فایلهای موجود در یک دایرکتوری جستجو کنیم برای این کار به جای نام فایل از * استفاده میکنیم:
grep linux *در ضمن میتوانیم تعیین کنیم که این جستجو به صورت تو در تو انجام شود، برای اینکار از آپشن r استفاده میکنیم
grep -r linux *اگر بخواهیم که جستجوی خود را محدود به کلمه کنیم از آپشن w استفاده میکنیم که در اینصورت خطوطی چاپ خواهند شد که دقیقا همین عبارت در آنها باشد (بدون این آپشن اگر عبارت بخشی از یک رشته هم باشد چاپ خواهد شد)
grep -w linux *به طور پیشفرض دستور grep به کوچک یا بزرگ بودن حروف حساس است اما اگر بخواهیم این حساسیت کنار گذاشته شود میتوانیم از آپشن i استفاده کنیم
grep -i linux *که در اینصورت اگر خطی شامل LINUX هم باشد در خروجی چاپ خواهد شد.
برای نمایش نام فایلهایی که الگوی مورد نظر در آنها منطبق شده است از آپشن l استفاده میکنیم
grep -l linux *برای شمارش تعداد موارد منطبق شده در هر فایل از آپشن c استفاده میشود
grep -c linux *اگر بخواهیم شماره ی خطی که الگوی مورد نظر در آن پیدا شده در خروجی چاپ شود از دستور n استفاده میکنیم.
grep -n linux sample.txtمیتوانیم با استفاده از آپشن A تعداد خطوط بعد از انطباق و با استفاده از آپشن B تعداد خطوط قبل از انطباق و با استفاده از C تعداد خطوط قبل و بعد انطباق را هم در خروجی چاپ کنیم:
grep -n -C 3 linux sample.txtبا اجرای دستور بالا ۳ خط از قبل و ۳ خط از بعد انطباقها چاپ خواهد شد.
شما دیگه چه آپشنهایی میشناسید؟ اونها رو کامنت کنید تا ما هم بدونیم...
مطلبی دیگر از این انتشارات
پایتونستان-مینی پروژه یک برنامه GUI-قسمت دوم
مطلبی دیگر از این انتشارات
پیاده سازی پخش کننده موزیک با زبان C و GTK-2.0 ( صرفا جهت اطلاع )
مطلبی دیگر از این انتشارات
آردوینو چیست !؟ ( بخش اول )