Як знайти всі файли, що містять певний текст у Linux?
Виконайте наступне:
grep -rnw '/path/to/somewhere/' -e 'pattern'
-
-r
або-R
- рекурсивний пошук, -
-n
- вивести номер рядка -
-w
пошук цілого слова. -
-l
(нижній регістр L) можна додати, щоб просто вказати ім'я відповідного файлу.
Також можна використовувати, --exclude
, --include
, --exclude-dir
. Ці прапори можуть бути використані для ефективного пошуку:
Ця команда буде здійснювати пошук лише у тих файлах з розширенням .c
або .h
:
grep --include=\*.{c,h} -rnw '/path/to/somewhere/' -e "pattern"
Ця команда виконає пошук у всіх файлах, за виключенням тих що закінчуються розширенням .o
:
grep --exclude=\*.o -rnw '/path/to/somewhere/' -e "pattern"
Для каталогів можна виключити один або кілька каталогів за допомогою параметра --exclude-dir
. Наприклад, ця команда виключить директорії dir1/
, dir2/
а також ті що відповідають *.dst/
:
grep --exclude-dir={dir1,dir2,*.dst} -rnw '/path/to/somewhere/' -e "pattern"
Для отримання додаткових опцій перевірте man grep
.
Коментарі (0)
Щоб залишити коментар необхідно авторизуватися.
Ще немає коментарів