Как я могу использовать grep, чтобы найти слово в папке?

474
задан MackM 24 June 2017 в 04:19
поделиться

1 ответ

Также есть:

find directory_name -type f -print0 | xargs -0 grep -li word

, но это может быть немного для новичка.

find - это каталог-обходчик общего назначения, -type f означает «искать простые файлы, а не каталоги и именованные каналы и что у вас есть», -print0 означает «выводить их на стандартный вывод, используя нулевые символы в качестве разделителей ". Выходные данные из find отправляются в xargs -0, и этот стандартный ввод захватывается кусками (чтобы избежать ограничений длины командной строки), используя нулевые символы в качестве разделителя записей (а не стандартный перевод строки), и применяется grep -li word к каждому набор файлов. В grep, -l означает «список файлов, которые соответствуют», а -i означает «без учета регистра»; обычно вы можете комбинировать опции одного символа, чтобы вы видели -li чаще, чем -l -i.

Если вы не используете -print0 и -0, то у вас возникнут проблемы с именами файлов, которые содержат пробелы, поэтому их использование - хорошая привычка.

24
ответ дан mu is too short 24 June 2017 в 04:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: