Как я могу использовать, grep
чтобы показать только имена файлов (без встроенных совпадений) в Linux?
Я обычно использую что-то вроде:
find . -iname "*php" -exec grep -H myString {} \;
Как я могу просто получить имена файлов (с путями), но без совпадений? Должен ли я использовать xargs
? Я не видел способа сделать это на своей grep
странице руководства.
vim $(grep -rl Something app/)
Ответы:
Стандартная опция
grep -l
(это строчная буква L) может сделать это.Из стандарта Unix :
Вам также не нужно
-H
в этом случае.источник
grep -nrl "some text" .
при рекурсивном поиске текста в наборе подпапокСо
grep(1)
страницы руководства :источник
Для простого поиска файлов вы можете использовать grep's
-l
и-r
параметры:Весь поиск сделан grep. Конечно, если вам нужно выбрать файлы по какому-либо другому параметру, найдите правильное решение:
execdir
Вариант сборка каждой команды Grep за каждый каталог, и присоединяет имена файлов в только одна команду (+
).источник
Ваш вопрос Как я могу просто получить имена файлов (с путями)
Ваш пример синтаксиса найти. -имя "* php" -exec grep -H myString {} \;
Моя команда предложение
Вывод этой команды на моей ОС Linux:
Поскольку вам требуется имя файла с путем, наслаждайтесь!
источник