Як знайти всі файли, що містять певний текст у 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.

Alex · 3 роки тому
Коментарі (0)

    Ще немає коментарів

Щоб залишити коментар необхідно авторизуватися.

Вхід / Реєстрація