سلام دوستان. من یک دایرکتوری داشتم که کلی فایل های متنی توش بود توی چند تا از این فایل ها یک کلمه خاصی رو به کار برده بودم که فراموش کردم کدوم فایل ها دارای این کلمه خاص هستند. برای همین دنبال یک راه حلی بودم که بتونم یک کلمه یا string رو در داخل همه این فایل های سرچ کنه که بدونم کدوم یک از این فایل ها دارای همچین محتوایی هستند. ابتدا از دستور find همانند زیر برای این کار استفاده کردم که نتیجه ای در بر نداشت.
بعد از کمی سرچ در اینترنت دستور grep رو پیدا کردم که با syntaxt زیر به خوبی کار کرد و فایل هایی که دارای اون کلمه خاص بودند رو برای من پیدا و لیست کرد، که در اینجا با شما هم به اشتراک میگذارم.
برای این کار میتونید از دستور grep همانند زیر استفاده کنید.
آپشن -r یا -R : کل دایرکتوری ها و زیر شاخه های دایرکتوری انتخاب شده را جستجو میکند.
آپشن -n : شماره line ها میباشد.
آپشن -w : برای ست کردن کلمه خاصی که میخواهیم دنبالش بگردیم.
آپشن -l : می تواند اضافه شود تا فقط نام فایل را با کلمه خاص مورد نظر ما تطبیق داده شود.
همچنین آپشن های --exclude, --include, --exclude-dir هم میتواند برای شما کارآمد باشد.
این دستور فقط فایل هایی که دارای پسوند c یا h هستند را جستجو میکند.
این دستور همه فایل های با پسوند -o را از سرچ نادیده میگیرد.
در مورد دایرکتوری ها امکان اینکه یک دایرکتوری را در سرچ نادیده بگیریم از پارامتر --exclude-dir استفاده میکنیم. برای مثال دستور زیر دایرکتوری های dir1/ و dir2/ و تمام مواردی که با *.dst مچ شوند را در سرچ نادیده میگیرد.
همچنین توصیه میشود مطالعه کنید :
دستور find در لینوکس برای جستجوی فایل ها و دایرکتوری ها
دستور grep در لینوکس به همراه 12 مثال عملی
دستور awk در لینوکس برای فیلتر کردن متن یا کلمات در فایل ها
نویسنده : البرز احمدی
کد PHP:
find / -type f -exec grep -H 'text-to-find-here' {} \;
بعد از کمی سرچ در اینترنت دستور grep رو پیدا کردم که با syntaxt زیر به خوبی کار کرد و فایل هایی که دارای اون کلمه خاص بودند رو برای من پیدا و لیست کرد، که در اینجا با شما هم به اشتراک میگذارم.
برای این کار میتونید از دستور grep همانند زیر استفاده کنید.
کد PHP:
grep -rnw '/path/to/somewhere/' -e 'pattern'
آپشن -r یا -R : کل دایرکتوری ها و زیر شاخه های دایرکتوری انتخاب شده را جستجو میکند.
آپشن -n : شماره line ها میباشد.
آپشن -w : برای ست کردن کلمه خاصی که میخواهیم دنبالش بگردیم.
آپشن -l : می تواند اضافه شود تا فقط نام فایل را با کلمه خاص مورد نظر ما تطبیق داده شود.
همچنین آپشن های --exclude, --include, --exclude-dir هم میتواند برای شما کارآمد باشد.
این دستور فقط فایل هایی که دارای پسوند c یا h هستند را جستجو میکند.
کد PHP:
grep --include=\*.{c,h} -rnw '/path/to/somewhere/' -e "pattern"
این دستور همه فایل های با پسوند -o را از سرچ نادیده میگیرد.
کد PHP:
grep --exclude=*.o -rnw '/path/to/somewhere/' -e "pattern"
در مورد دایرکتوری ها امکان اینکه یک دایرکتوری را در سرچ نادیده بگیریم از پارامتر --exclude-dir استفاده میکنیم. برای مثال دستور زیر دایرکتوری های dir1/ و dir2/ و تمام مواردی که با *.dst مچ شوند را در سرچ نادیده میگیرد.
کد PHP:
grep --exclude-dir={dir1,dir2,*.dst} -rnw '/path/to/somewhere/' -e "pattern"
همچنین توصیه میشود مطالعه کنید :
دستور find در لینوکس برای جستجوی فایل ها و دایرکتوری ها
دستور grep در لینوکس به همراه 12 مثال عملی
دستور awk در لینوکس برای فیلتر کردن متن یا کلمات در فایل ها
نویسنده : البرز احمدی