جستجوی متن (Search Text (grep))
می خواهی سریع متن پیدا کنی؟ با «دستور grep» می شود الگو جستجو کرد. «الگو (Pattern)» یعنی نوشته ای که به دنبالش هستی. مثل جستجوی نام دوستت در فهرست کلاس.
شروع سریع با grep
برای جستجو در یک فایل، الگو و نام فایل را بنویس.
grep 'shell' file.txt
A shell is a text-based interface that lets you talk to your computer.
There are different types of shells. Bash (Bourne Again SHell)
گزینه های پرکاربرد grep
-i: جستجو بدون حساسیت به حروف.-r: جستجو در پوشه ها و زیرپوشه ها.-v: نمایش خط های ناهماهنگ با الگو.
نادیده گرفتن بزرگی/کوچکی حروف (-i)
با این گزینه، shell و Shell یکسان می شوند. خیال ات راحت باشد.
grep -i 'shell' file.txt
Understanding Shells
A shell is a text-based interface that lets you talk to your computer.
There are different types of shells. Bash (Bourne Again SHell)
جستجوی بازگشتی پوشه ها (-r)
همه فایل ها بررسی می شوند. مثل جستجوی همگانی در گوشی.
grep -r 'search_term' /home/user/my_directory
/home/user/.my_secret_file:A shell is a text-based interface that lets you talk to your computer.
/home/user/.my_secret_file:There are different types of shells. Bash (Bourne Again SHell)
/home/user/.my_secret_file:Bourne Shell (sh): The original Unix shell, developed by Stephen Bourne.
/home/user/copy_of_my_file.txt:A shell is a text-based interface that lets you talk to your computer.
/home/user/copy_of_my_file.txt:There are different types of shells. Bash (Bourne Again SHell)
/home/user/myfolder/my_file.txt:A shell is a text-based interface that lets you talk to your computer.
/home/user/myfolder/my_file.txt:There are different types of shells. Bash (Bourne Again SHell)
/home/user/my_file.txt:A shell is a text-based interface that lets you talk to your computer.
/home/user/my_file.txt:There are different types of shells. Bash (Bourne Again SHell)
برعکس کردن نتیجه ها (-v)
این گزینه خط های ناهماهنگ را نشان می دهد. مثل فیلتر معکوس.
grep -v 'shell' my_file.txt
Understanding Shells
الگوهای پیشرفته با عبارات منظم
«عبارت منظم (Regex)» الگوی دقیق تری می دهد. آغاز خط با حرف را بیاب.
grep '^[A-Za-z]' my_file.txt
Understanding Shells
A shell is a text-based interface that lets you talk to your computer.
There are different types of shells. Bash (Bourne Again SHell)
is popular because it's powerful and easy to use.
نکته: اگر خروجی زیاد است، آن را با less ببین. پیمایش راحت تر می شود.
تمرین گام به گام
- یک فایل متنی انتخاب کن. مثلاً
file.txt. - یک الگو تعیین کن. مثلاً
shell. - اجرا کن:
grep 'shell' file.txt. - با
-iحساسیت حروف را بردار. - با
-rکل پوشه را جستجو کن.
برای یادگیری بیشتر، نام مستعار را ببین. همچنین awk برای پردازش متن عالی است. همین صفحه جستجوی متن با grep را نشان گذاری کن.
جمع بندی سریع
- grep متن را با الگو پیدا می کند.
- -i حروف را یکسان در نظر می گیرد.
- -r همه پوشه ها را می گردد.
- -v خط های ناهماهنگ را نشان می دهد.
- Regex برای الگوهای دقیق تر است.