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

0 رأی
میانگین بازدید روزانه 0.19474 بازدید

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

سوال 6 سال قبل در تالار کامپیوتر و اینترنت توسط Saeed Zarinfam (1,044 امتیاز)
ویرایش 5 سال قبل توسط Saeed Zarinfam

1 جواب

0 رأی

با استفاده از دستور 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"
جواب 6 سال قبل توسط Saeed Zarinfam (1,044 امتیاز)

سوال های مشابه

0 رأی
2 جواب میانگین بازدید روزانه 1.855,531 بازدید
0 رأی
1 جواب میانگین بازدید روزانه 0.1268 بازدید
0 رأی
1 جواب میانگین بازدید روزانه 0.31,061 بازدید
0 رأی
1 جواب میانگین بازدید روزانه 0.1254 بازدید
0 رأی
2 جواب میانگین بازدید روزانه 0.943,544 بازدید
+1 رأی
1 جواب میانگین بازدید روزانه 0.14453 بازدید
+1 رأی
1 جواب میانگین بازدید روزانه 0.15520 بازدید
0 رأی
1 جواب میانگین بازدید روزانه 0.82,839 بازدید
0 رأی
1 جواب میانگین بازدید روزانه 0.08217 بازدید
0 رأی
1 جواب میانگین بازدید روزانه 0.09253 بازدید
کانال تلگرام جواب یاب
...