Упрощают ли какие-либо приложения для OS X поиск и замену в нескольких файлах?

Я ищу инструмент OS X, который позволяет мне искать и заменять строку поиска в нескольких файлах. Требования следующие:

  • Поиск и замена
  • Поиск по регулярному выражению
  • Поиск по нескольким файлам
  • Поиск по вложенным структурам каталогов
  • Выражение замены может использовать значения из поиска (регулярное выражение)
  • Инструмент имеет простой в использовании пользовательский интерфейс
  • Желательно бесплатно

Я знаю, что некоторые текстовые редакторы, такие как BBEdit , имеют эту функцию, но я бы предпочел легкий инструмент, который не требует, чтобы я сначала открывал файлы для редактирования.

Если нет никаких инструментов, соответствующих этим требованиям, я бы также рассмотрел альтернативу командной строки. Я знаю это perlи sedподдерживаю что-то подобное - решение, которое я могу определить как псевдоним или функцию Bash , будет приветствоваться в этом случае.

Ответы (7)

Обычно я использую TextMate :

Диалоговое окно поиска и замены TextMate

TextMate (1) является/был продуктом для покупки, но TextMate 2 в настоящее время находится в активной разработке с открытым исходным кодом на gitHub и может использоваться бесплатно.

Sublime Text — это то, что я использую, это здорово!

Скриншот найти и заменить

Возвышенный текст:

  • может свободно оценивать (без ограничений по времени)
  • можно найти и заменить
  • может искать по регулярному выражению
  • может выполнять поиск по нескольким файлам
  • может выполнять поиск по вложенным структурам каталогов
  • может использовать значения из поиска в выражении замены
  • имеет простой в использовании пользовательский интерфейс
Не могли бы вы быть немного более конкретным и описать, как SublimeText решает проблему, описанную в вопросе?
Их веб-сайт (предоставленная ссылка говорит вам все), но... Оценить можно бесплатно (без ограничений по времени) Поиск и замена - ДА. Поиск по регулярному выражению - ДА. Поиск по нескольким файлам - ДА. Поиск по вложенным структурам каталогов — ДА. Заменить выражение может использовать значения из поиска (Regular Expression) - YES. Инструмент имеет простой в использовании пользовательский интерфейс - ДА. Желательно бесплатно - ДА (вроде).

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

В дополнение к другим решениям, использующим текстовый редактор, я нашел FAR — Find and Replace , многоплатформенный инструмент для поиска и замены. Это не самый красивый, но похоже, что он делает то, что я ищу.

http://findandreplace.sourceforge.net/

Я часто использую такие скрипты Ruby:

Dir["**/*.txt"].each { |f|
  IO.write(f, IO.read(f).gsub(/search/, "replace"))
}

Или вы можете использовать gets(nil)с -i:

ruby -i -e 'print gets(nil).gsub(/search/, "replace")' *.txt

Если вы устанавливаете Bash 4 и включаете globstar, вы также можете использовать **в оболочках:

sed -i '' 's/search/replace/g' **/*.txt

Это точно sedбыло написано, и это соответствует всем вашим требованиям, за исключением того, что кривая обучения немного крутая.

Для более плавного обучения попробуйте TextWrangler от BareBones. Он использует текстовый движок BBEdit и, как мне кажется, обладает полной функциональностью поиска и замены своего старшего брата.

Я немного знаком с bash-программированием и сценариями, но никогда не делал ничего продвинутого с sed. Можете ли вы привести пример того, как использовать sedдля замены текста в серии файлов, как в (в настоящее время) rubyответе выше?

Взгляните на мой поиск и замену приложений . Вы можете использовать его для нескольких файлов или каталогов, защитить строки поиска/замены и использовать регулярные выражения.

Как это работает - почему это лучше, чем другие ответы - пожалуйста, предоставьте больше, чем ссылку
Привет и добро пожаловать в Ask Different! Хотя мы не возражаем против того, чтобы разработчики рекомендовали свои продукты, когда они действительно решают представленные проблемы, мы просим вас предоставить четкий контекст того, почему ваш продукт является ответом и как он решает проблему. Дополнительную информацию о том, как работает Ask Different и формат вопросов и ответов StackExchange, см . в разделе часто задаваемых вопросов .
Я предполагаю, что у него примерно те же функции, что и у других инструментов, рекомендованных здесь. Разница в том, что у вас есть графический интерфейс, и вы можете сохранять файлы, содержащие строки поиска/замены. В нем есть все функции, о которых просил nwinkler. Он может искать и заменять (также с использованием регулярных выражений) в нескольких структурах файлов/вложенных каталогов и имеет (по крайней мере, я так думаю) простой в использовании графический интерфейс.