Найти все файлы, содержащие определенный текст (строку) в Linux?

В Linux можно использовать команду `grep` для поиска строки в файлах.

grep строка путь/к/файлу*

Например, чтобы найти все файлы, содержащие строку “текст”, вы можете использовать следующую команду:

grep "текст" /путь/к/файлам/*

Здесь `/путь/к/файлам/*` — это директория, в которой нужно поискать файлы.

Если вы хотите найти строки только в текстовых файлах (например, в файлах с расширением `.txt`, `.log`, `.conf`), вы можете использовать флаг `-r` и специальные шаблоны:

grep -r "текст" /путь/к/файлам/*

Если у вас есть длинный текст, который нужно найти, лучше разбить его на несколько строк и вставить их после параметра `grep`.

Например:

“`bash
echo “текст1\nтекст2\ntекст3” | grep -r /путь/к/файлам/*
“`

Также вы можете использовать флаг `-n` для указания номера строки, на которой находится найденная строка:

“`bash
grep -nr “текст” /путь/к/файлам/*
“`

Чтобы найти файлы с содержанием по конкретному шаблону, используйте диапазон:

“`bash
grep -rnw /путь/к/файлам/* –include=’*.txt’ –exclude=’*~’
“`

В данном примере мы указываем поиск в директории `/путь/к/файлам/*`, а также включаем файлы с расширением `.txt` и исключаем файлы с расширением `~`.

Если вы хотите использовать регулярное выражение, используйте флаг `-E`:

“`bash
grep -nrE “текст1|текст2” /путь/к/файлам/*
“`

В данном примере мы используем оператор `|`, который означает «или».

Вам может также понравиться...