Відповіді:
Після деяких випробувань я думаю, що grep -irn 'string' --include '*.h'це зручніше
foobar.hу поточному каталозі, та спробуйте його ще раз.
S і ін (включити) ш ELL неавтоматичного іонів globstarза допомогою команди
shopt -s globstar
Це призведе до того **, що компонент імені файлу означатиме все тут і нижче. Отже, path/**означає все, що знаходиться в pathкаталозі
та його підкаталогах . (Тут вам не потрібно вводити ./.) Потім ви можете використовувати
grep -in "string" path/**/*.h
шукати всі .hфайли в і під path.
Ви можете у nПравільно встановіть опції з shopt -u.
find /path -iname "*.h" -exec grep -inH "string" "{}" \;
-exec... +теж добре.
"string"у свою відповідь!
Якщо ви можете встановити щось на своєму пристрої, я пропоную використовувати ack .
Ви можете робити саме те, що вам потрібно, і багато іншого. Для вашого випадку використання ви можете:
# Depending of your system, you have to use one or the other
ack --hh -i string path
ack-grep --hh -i string path
Щоб знайти, які фільтри файлів підтримуються спочатку, запустіть команду ack --help=type.
Як щодо цього?
find -L ./path -name "*.h" -exec grep -in "string" {} \;
Пояснення:
findкомандоюfindкомандиfindз -exec, це специфікатор вичерпаним команди"*.h"працює? Я б подумав, що це потрібно'*.h'
"*.h"цитати.