2015-02-12 3 views
0

Для школы мне нужно выполнить назначение, в котором мне нужно использовать команду grep в minix для поиска исходного дерева для файлов, содержащих «int main (». С деревом источника, хранящимся в /usr/src я имею следующую команду:.Мини-поиск grep с определенными расширениями

grep -rn --include=\*.c /usr/src/ "int main(" 

проблема заключается в том, что я не могу получить команду искать только в .c файлах Таким образом, вопрос: как я могу искать, используя grep для любых файлов, содержащих "int main(", но только в поиске .c файлов?

Любая помощь очень ценится.

ответ

0

Я думаю, что следующее будет работать:

 
grep "int main(" $(find /usr/src|grep .c)

Это будет принимать все файлы в/USR/SRC, и посмотреть, какие из них имеет строку «.c» в именах файлов, а затем искать какие-то строки жгутов каждый из этих файлов. Grep жгутов в $ (не будет выглядеть внутри этих файлов, так как она выглядит в поисках какой-либо строки в стандартный ввод, который он получает через трубу

EDIT:.

Это может не работать, в зависимости от уровень мощности ваших компьютеров на моем ноутбуке она возвращает «ЗШ: список аргументов слишком долго: Grep».. Но принцип должен работать

EDIT EDIT:.

Если вы хотите найти (например) также в, скажем, .h файлах, вы можете использовать следующее:

 
grep "int main(" $(find /usr/src|grep .c|grep .h)

+0

Хорошо работает на моей виртуальной машине, спасибо вам большое! –

Смежные вопросы