Як ви перехоплюєте та повертаєте лише відповідну лінію? тобто шлях / ім’я файлу опущено в результатах.
У цьому випадку я хочу шукати всі .bar файли в поточному каталозі, шукаючи термін FOO
find . -name '*.bar' -exec grep -Hn FOO {} \;
Як ви перехоплюєте та повертаєте лише відповідну лінію? тобто шлях / ім’я файлу опущено в результатах.
У цьому випадку я хочу шукати всі .bar файли в поточному каталозі, шукаючи термін FOO
find . -name '*.bar' -exec grep -Hn FOO {} \;
Відповіді:
Не потрібно find
. Якщо ви просто шукаєте шаблон у певному каталозі, цього має бути достатньо:
grep -hn FOO /your/path/*.bar
Звідки -h
параметр для приховання імені файлу, як від man grep
:
-h, --no-filename
Придушити префіксацію імен файлів на виході. Це за замовчуванням, коли для пошуку потрібен лише один файл (або лише стандартний вхід).
Зверніть увагу, що ви використовували
-H, --з ім'ям файлу
Роздрукуйте ім’я файлу для кожної відповідності. Це за замовчуванням, коли для пошуку більше одного файлу.
alias grep
. Щоб опустити псевдонім, тип\grep ...