Форум русскоязычного сообщества Ubuntu


Хотите сделать посильный вклад в развитие Ubuntu и русскоязычного сообщества?
Помогите нам с документацией!

Автор Тема: grep + рекурсия  (Прочитано 1476 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн sergeyvl12

  • Автор темы
  • Любитель
  • *
  • Сообщений: 95
    • Просмотр профиля
grep + рекурсия
« : 11 Май 2010, 14:00:38 »
Добрый день!

Надо искать рекурсивно в текущем каталоге и во всех его подкаталогах в *.cpp, *.h - файлах некоторый шаблон. Подскажите как это сделать.

grep -r class *
это поиск слова "class" во всех файлах (в принципе то что мне нужно, но не работают маски файлов).

grep -r class *.cpp
это поиск слова "class" в cpp-файлах, но только в текущем каталоге (без рекурсии)!

grep -r class **/*.cpp
это поиск слова "class" в каталогах первого уровня вложенности (без рекурсии)!

Так как же все-таки организовать рекурсию? (вариант с задействованием "find" не предлагать).

Оффлайн alexander.pronin

  • Старожил
  • *
  • Сообщений: 2540
    • Просмотр профиля
Re: grep + рекурсия
« Ответ #1 : 11 Май 2010, 14:21:49 »
Если find не устраивает, то м.б. такой вариант
locate -r "\.cpp$" | xargs grep ...
locate -r "\.h$" | xargs grep ...
« Последнее редактирование: 11 Май 2010, 14:26:34 от alexander.pronin »

Оффлайн sergeyvl12

  • Автор темы
  • Любитель
  • *
  • Сообщений: 95
    • Просмотр профиля
Re: grep + рекурсия
« Ответ #2 : 11 Май 2010, 14:40:25 »
Желательно одним только грепом обойтись. Ведь он же "рекурсивный"...

Оффлайн Kwah

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 1442
  • Ubuntu 17.10
    • Просмотр профиля
Re: grep + рекурсия
« Ответ #3 : 12 Май 2010, 04:12:15 »
grep ... | grep ... ?

Оффлайн sergeyvl12

  • Автор темы
  • Любитель
  • *
  • Сообщений: 95
    • Просмотр профиля
Re: grep + рекурсия
« Ответ #4 : 12 Май 2010, 12:08:55 »
Ладно, вижу что grep какой-то недоделанный. Думаю что лучше будет написать скриптец и использовать там его в связке с find или locate (как alexander.pronin подсказал). Не понимаю, не делали тогда бы уж совсем рекурсию.

Оффлайн Mam(O)n

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 5855
    • Просмотр профиля
Re: grep + рекурсия
« Ответ #5 : 12 Май 2010, 13:02:30 »
Ведь он же "рекурсивный"... Ладно, вижу что grep какой-то недоделанный..... Не понимаю, не делали тогда бы уж совсем рекурсию.
Когда маны читать вместо нытья будем?

grep -r --include=*.{cpp,h} "class epanarot" *

Оффлайн sergeyvl12

  • Автор темы
  • Любитель
  • *
  • Сообщений: 95
    • Просмотр профиля
Re: grep + рекурсия
« Ответ #6 : 12 Май 2010, 13:37:29 »
Спасибо! Критика принимается :)

Оффлайн alexander.pronin

  • Старожил
  • *
  • Сообщений: 2540
    • Просмотр профиля
Re: grep + рекурсия
« Ответ #7 : 13 Май 2010, 09:00:11 »
Когда маны читать вместо нытья будем?
Кто-то предпочитает ныть и поливать г. ,
кто-то будет читать маны,
кто-то будет гуглить до посинения,
кто-то напишет 101 вариант grep на каком-то языке, типа питона-перла-С#-java-php и т.д.
кто-то использует ему уже известные пути.
Многообразие.
Юникс-вай, однако. ;D
« Последнее редактирование: 13 Май 2010, 09:05:07 от alexander.pronin »

 

Страница сгенерирована за 0.062 секунд. Запросов: 22.