Я использовал ACK для поиска в моей базе кода, и это замечательный инструмент. Однако у него есть (на мой взгляд) одно важное ограничение - оно не позволяет многострочное сопоставление регулярных выражений.
Чтобы преодолеть это ограничение, я хотел бы отфильтровать набор файлов, содержащих определенное выражение, а затем отфильтровать их снова, ища второе выражение (учитывая, что оба выражения, скорее всего, не находятся в одной строке). Я попытался выполнить следующую команду, но безуспешно (ничего не возвращается):
ack -l --type=java "(List|Collection|Map|Set)" | ack --type=java "String"
И я бы предпочел не использовать grep
, так как я хочу ограничить свои поиски файлами java, игнорируя .cvs dirs, .svn dirs и т. Д. (Что-то ack
делает по умолчанию) Любые идеи?