Какой лучший инструмент или метод для поиска конкретного слова в базе кода? - PullRequest
2 голосов
/ 23 октября 2008

Какой инструмент или метод вы рекомендуете найти и заменить значения в вашем коде? Если код написан на Linux / Unix, является ли find и grep лучшим методом?

Ответы [ 6 ]

7 голосов
/ 23 октября 2008

Взгляните на ack , который предназначен для поиска больших кодовых баз.

Для замены посмотрите флаги Perl -i, -p и -e. Вы можете делать такие вещи, как:

$ perl -i -p -e's/\bthisword\b/thatword/g' $(find . -name *.html)

для замены всех экземпляров этого слова этим словом во всех файлах .html в дереве.

1 голос
/ 02 мая 2009

Это всего лишь подсказка к принятому выше ответу Энди. Не удалось добавить его в качестве комментария из-за меньшей репутации

Используй! в качестве сепаратора, когда вам тяжело уклоняться от струн

например, $ perl -i -p -e's! \ Bthisword \ b! Thatword! G '$ (найти. -Name * .html)

1 голос
/ 24 октября 2008

Загляните в PowerGrep ... там везде реклама в SO. Я начинаю хотеть этого, даже когда мне это действительно не нужно -

PD: у них есть бесплатная демоверсия на 15 дней, поэтому, если это небольшая работа, вы можете просто использовать демо.

1 голос
/ 24 октября 2008

find и grep найдут искомое слово, но для его замены вам нужно использовать sed, awk или ваш любимый фильтр редактирования потока.

groovy, python, perl все будут выполнять операции поиска / замены - используйте ваш любимый или выберите один для изучения.

Для операций над базой кода я буду использовать find | sed для простых операций (cygwin - ваш друг), а поиск / замена в IDE с поддержкой регулярных выражений для более сложных операций. Eclipse, Idea, Visual Studio и даже SQL Server Manglement Studio имеют мощные функции поиска / замены. Плохая новость заключается в том, что не все из них используют один и тот же синтаксис регулярных выражений.

1 голос
/ 23 октября 2008

Я предполагаю, что вы намереваетесь переименовать переменную.

Это зависит от того, какое тело кода. Для C # инструмент переименования Visual Studio очень хорош. Помните, что для его надежной работы необходимо, чтобы переименование работало рука об руку с компилятором / интерпретатором, поэтому вы можете убедиться, что вносите изменения только в нужную область.

Если это очень просто найти / заменить, наверняка скромный блокнот будет работать нормально?

0 голосов
/ 23 октября 2008

find и grep не создают независимости, поэтому они всегда будут медленнее, чем альтернативы, которые это делают. Тем не менее, они работают нормально, если ваша кодовая база содержит всего несколько десятков файлов. В Fi

Eclipse имеет хорошую функцию поиска файлов (Ctrl + H). Он также может учитывать семантику языка, если у вас есть нужные плагины (конечно, Java работает «из коробки»). Единственное предостережение в том, что он может быть немного медленным при первом поиске в определенном наборе файлов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...