Как делают Вас grep через код, который живет во многих различных каталогах?

Да, все возможно с TYPO3 и во многих отношениях. Как вложены элементы содержимого? От родителей к детям (темплавоила) или от детей к родителю (жених)?

18
задан joeforker 14 May 2009 в 19:58
поделиться

6 ответов

find DIRECTORY -name "*.py" | xargs grep PATTERN

Между прочим, с тех пор, как я писал это, я обнаружил ack , что является гораздо лучшим решением.

(И после этого редактирования я обнаружил ag) .

23
ответ дан 30 November 2019 в 05:42
поделиться

Я настоятельно рекомендую ack , замену grep, «предназначенную для программистов с большими деревьями разнородного исходного кода» (с веб-сайта)

18
ответ дан 30 November 2019 в 05:42
поделиться
grep -r -n "PATTERN" --include="*.py" DIRECTORY
16
ответ дан 30 November 2019 в 05:42
поделиться
find <directory> -name '*.py' -exec grep <pattern> {} \;
4
ответ дан 30 November 2019 в 05:42
поделиться

В наши дни я также много использую ack. Я немного подправил его, чтобы найти все соответствующие типы файлов:

# Add zcml to the xml type:
--type-add
xml=.zcml

# Add more files the plone type:
--type-add
plone=.dtml,.zpt,.kss,.vpy,.props

# buildout config files
--type-set
buildout=.cfg

# Include our page templates to the html type so we can limit our search:
--type-add
html=.pt,.zpt

# Create txt file type:
--type-set
txt=.txt,.rst

# Define i18n file types:
--type-set
i18n=.pot,.po

# More options
--follow
--ignore-case
--nogroup

Важно помнить, что ack не найдет файлы, если расширение отсутствует в его конфигурации. См. "Ack --help-types" для всех доступных типов.

Я также предполагаю, что вы используете omelette , чтобы вы могли grep / ack / найти все связанные файлы?

6
ответ дан 30 November 2019 в 05:42
поделиться

Также есть GNU idutils , если вы хотите очень быстро найти идентификаторы в большом дереве исходного кода. Для этого необходимо заранее создать базу данных поиска, запустив mkid (и настроив его конфигурационный файл, чтобы он не игнорировал файлы .py). z3c.recipe.tag позаботится об этом, если вы используете buildout.

2
ответ дан 30 November 2019 в 05:42
поделиться
Другие вопросы по тегам:

Похожие вопросы: