0 امتیاز
قبل در کامپیوتر و اینترنت توسط (1.1هزار امتیاز)
ویرایش شده قبل توسط

چگونه می توان تمام فایل های درون یک فولدر که حاوی متن خاصی هستند را در ترمینال لینوکس پیدا کرد؟

1 پاسخ

0 امتیاز
قبل توسط (1.1هزار امتیاز)

با استفاده از دستور grep و پارامتر های زیر می توان این کار را انجام داد:

grep -rnw '/path/to/somewhere/' -e "pattern"
  • پارامتر -r یا -R مشخص کننده جستجو در فولدر بصورت بازگشتی است.
  • پارامتر -n مشخص کننده شماره خط است.
  • پارامتر -w مشخص می کند که باید تمام کلمه جستجو شود.
  • پارامتر -l مشخص می کند که در خروجی فقط نام فایل حاوی متن چاپ شود.

با استفاده از پارامتر های --exclude یا --include می توان جستجو را محدود کرد:

grep --include=\*.{c,h} -rnw '/path/to/somewhere/' -e "pattern"

دستور بالا فقط در بین فایل های با پسوند .c یا .h جستجو می کند. یا:

grep --exclude=*.o -rnw '/path/to/somewhere/' -e "pattern"

دستور بالا فقط در بین فایل هایی جستجو می کند که پسوندشان .o نباشد.

با استفاده از پارامتر های --exclude-dir و --include-dir می توان جستجو را در بین فولدر های خاصی محدود کرد:

grep --exclude-dir={dir1,dir2,*.dst} -rnw '/path/to/somewhere/' -e "pattern"

سوالات مشابه

0 امتیاز
2 پاسخ 6.0هزار بازدید
0 امتیاز
1 پاسخ 428 بازدید
+1 امتیاز
1 پاسخ 665 بازدید
+1 امتیاز
1 پاسخ 680 بازدید
0 امتیاز
1 پاسخ 3.0هزار بازدید
0 امتیاز
1 پاسخ 420 بازدید
...