Назад | Перейти на главную страницу

Найти в файлах, Linux

Скажем, я хочу найти все файлы, в которых упоминается "Jonathan Appleseed" в системе Linux.

Я вижу примеры с использованием grep, но пока не могу понять, как искать (все каталоги ЗДЕСЬ). Поэтому я хочу посмотреть все, что находится ниже / var /, например

ха-ха. На это уйдут часы:> в любом случае .... grep -RE 'Jonathan Appleseed' R - рекурсивный, а E - чувствительный к регистру.

Если ваш grep не имеет опции -R,

find /var -type f -print | xargs egrep 'Jonathan Appleseed'

обычно будет делать то, о чем вы просите.

Я хочу найти все файлы, в которых упоминается "Jonathan Appleseed" в системе Linux.

Вы ищете:

grep -l -r "Jonathan Appleseed" /

Если вы хотите запустить команду для всех подходящих файлов, я бы посоветовал:

grep -l -z -r "Jonathan Appleseed" / | xargs -0 <your command here>

Обратите внимание, что -l означает показывать только имя файла (не соответствующий текст), -r означает рекурсивный, а -z (если вы решите использовать его) означает, что имена файлов имеют нулевое значение ("\ 0") и завершаются, а не заканчиваются кареткой. возвращение. Это означает, что xargs может более легко обрабатывать имена файлов с пробелами, табуляциями и возвратами каретки в имени.

Я также передаю /, чтобы указать, что grep должен запускаться в корне файловой системы («все файлы ... в системе Linux»).