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





Я предполагаю, что вы собираетесь переименовать переменную.
Это зависит от основной части кода. Для C# инструмент переименования Visual Studio очень хорош. Помните, что для его надежной работы необходимо, чтобы переименование работало рука об руку с компилятором / интерпретатором, поэтому вы можете быть уверены, что вносите изменения только в правильной области.
Если это очень простой поиск / замена, неужели скромный блокнот справится с задачей?
find и grep не создают неопределенностей, поэтому они всегда будут работать медленнее, чем альтернативные варианты. Тем не менее, они отлично работают, если ваша кодовая база состоит всего из нескольких десятков файлов. В Fi
В Eclipse есть хорошая функция поиска файлов (Ctrl + H). Он также может учитывать семантику языка, если у вас есть подходящие плагины (Java, конечно, работает из коробки). Единственное предостережение - это может быть немного медленнее при первом поиске в определенном наборе файлов.
Взгляните на подтверждать, который предназначен для поиска больших кодовых баз.
Для замены посмотрите флаги Perl -i, -p и -e. Вы можете делать что-то вроде:
$ perl -i -p -e's/\bthisword\b/thatword/g' $(find . -name *.html)
для замены всех экземпляров этого слова этим словом во всех файлах .html в дереве.
find и grep найдут слово, которое вы ищете, но для его замены вам нужно использовать sed, awk или ваш любимый фильтр редактирования потока.
groovy, python, perl все будут выполнять операции поиска / замены - используйте свой любимый или выберите один, чтобы узнать.
Для операций на базе кода я буду использовать find | sed для простых операций (cygwin - ваш друг) и функцию поиска / замены в среде IDE с поддержкой регулярных выражений для более сложных операций. Eclipse, Idea, Visual Studio и даже SQL Server Manglement Studio имеют мощные функции поиска / замены. Плохая новость в том, что не все они используют один и тот же синтаксис регулярных выражений.
Взгляните на PowerGrep ... у него есть реклама повсюду в SO. Я начинаю хотеть этого, даже когда мне это действительно не нужно -
PD: У них есть 15-дневная бесплатная демоверсия, так что если это небольшая работа, вы можете просто использовать демо.
Это просто подсказка к принятому выше ответу Энди. Не удалось добавить это в качестве комментария из-за меньшей репутации
Использовать ! как разделитель, когда вам трудно избежать струн
например, $ perl -i -p -e's! \ bthisword \ b! thatword! g '$ (найти. -name * .html)
Вы также можете использовать ack для части поиска в вашем примере замены: $ perl -i -p -e's / \ bthisword \ b / thatword / g '$ (ack -f --html)