grep строка из результатов поиска - PullRequest
0 голосов
/ 25 октября 2018

Я пытаюсь найти определенные файлы следующим образом:

locate myfile.conf

Затем распечатать все конкретные строки, которые я хочу найти

locate myfile.conf | xargs cat | grep filename

Команда возвращает мои две строки

filename
filename

Теперь, как я могу узнать, какое конкретное местоположение myfile.conf найдено «именем файла»?

Есть еще один простой способ добиться того, что мне нужно?

Ответы [ 3 ]

0 голосов
/ 25 октября 2018

Вы можете исключить cat и использовать только grep:

locate myfile.conf | xargs grep filename

Grep будет добавлять имя файла соответствующего файла к каждой строке вывода.

0 голосов
/ 25 октября 2018

команда cat бесполезна, так как вы используете xargs

--color справку, чтобы выделить местоположение файла

-H отображать имя файла и его путь к результату совпадения

-n отображение номера строки внутри файла

locate myfile.conf | xargs grep --color -Hn filename
0 голосов
/ 25 октября 2018

я предполагаю, что у вас есть определенные *.conf файлы, которые имеют определенную строку filename в этом случае, и вы ищете, чтобы найти эти файлы с определенной строкой.право ?если это так

попробуйте

grep -l filename `find ./ -name *.conf`
...