3

Мне нужен синтаксис GREP для следующей задачи (я нахожусь в ОС Linux):

запрашивает ВСЕ файлы в каталоге CURRENT, которые содержат STRING, но только перечисляют FILENAMES, которые содержат совпадение.

Спасибо!

2 ответа2

9

Ты можешь использовать

grep -rl stringToSearch .

или же

 find . -type f -exec grep -l stringToSearch {} \;

Для получения дополнительной информации о grep и других командах unix, пожалуйста, обратитесь к руководству ( man )

В этом случае man grep говорит, что

-l, --files-with-match Подавить нормальный вывод; вместо этого напечатайте имя каждого входного файла, из которого обычно выводился бы вывод.
Сканирование остановится при первом совпадении.

Очевидно, что в качестве команды bash, если ваша строка содержит специальные символы или пробелы, вы должны (по порядку) экранировать их и / или окружить вашу строку квотами

1

«Grep -l» выдаст вам список имен файлов.

> echo "hello" > test_file1.list
> echo "hello2.." > test_file2.list
> echo "xyz" > test_file3.list


> grep "hello" test_file*list

test_file1.list:hello
test_file2.list:hello2..


> grep -l "hello" test_file*list
test_file1.list
test_file2.list

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .