Чи полегшують будь-які програми OS X пошук та заміну в декількох файлах?


9

Я шукаю інструмент OS X, який дозволяє мені шукати і замінювати рядок пошуку в декількох файлах. Вимоги такі:

  • Пошук і заміна
  • Пошук за регулярним виразом
  • Шукайте в декількох файлах
  • Пошук у вкладених структурах каталогів
  • Замінити вираз можна за допомогою значень пошуку (Regular Expression)
  • Інструмент має простий у користуванні інтерфейс користувача
  • Переважно безкоштовно

Я знаю, що деякі текстові редактори, такі як BBEdit, мають цю функціональність, але я вважаю за краще легкий інструмент, який не вимагає від мене відкриття файлів для редагування.

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

Відповіді:


9

Зазвичай я використовую TextMate :

Діалогове вікно пошуку та заміни TextMate

TextMate (1) є / був продуктом купівлі, але TextMate 2 зараз перебуває в активному розробці openSource на gitHub та вільний у використанні.


5

Піднесений текст - це те, що я використовую, це чудово!

скріншот пошуку та заміни

Піднесений текст:

  • вільно оцінювати (не встановлюється обмеження часу)
  • може шукати та замінювати
  • можна шукати регулярним виразом
  • може здійснювати пошук у кількох файлах
  • може здійснювати пошук у вкладених структурах каталогу
  • може використовувати значення пошуку в виразі заміни
  • має простий у користуванні інтерфейс користувача

1
Чи можете ви бути трохи конкретнішими та описати, як SublimeText вирішує проблему, описану у питанні?
nohillside

Їх веб-сайт (надане посилання розповідає вам все), але ... Оцінити можна безкоштовно (не встановлено обмеження часу) Пошук та заміна - ТАК. Пошук за регулярним виразом - ТАК. Шукайте в декількох файлах - ТАК. Пошук у вкладених структурах каталогів - ТАК. Замінити вираз можна за допомогою значень пошуку (Regular Expression) - ТАК. Інструмент має простий у користуванні інтерфейс користувача - ТАК. Переважно безкоштовно - ТАК (вид).
Майк

3

Не потрібно відкривати файли за допомогою BBEdit. Ви просто вказуєте його на папку. Це дуже потужний інструмент, який я часто використовував із великою кількістю HTML-файлів.


3

На додаток до інших рішень за допомогою текстового редактора я знайшов FAR - Знайти та замінити , багатоплатформенний інструмент пошуку та заміни. Це не найкрасивіший, але схоже, він робить те, що я шукаю.

http://findandreplace.sourceforge.net/


2

Я часто використовую такі сценарії 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

1

Це саме sedнаписано і відповідає всім вашим вимогам, за винятком того, що крива навчання трохи крута.

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


1
Я знайомий з деякими програмуваннями та сценаріями, але ніколи не робив нічого просунутого sed. Чи можете ви навести приклад того, як використовувати sedдля заміни тексту рядки файлів, як-от у відповіді (наразі) вище ruby?
nwinkler

-1

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


Як це працює - чому це краще, ніж інші відповіді - будь ласка, надайте більше, ніж посилання
користувач151019

1
Привіт і Ласкаво просимо до Питання різних! Хоча ми не заперечуємо проти того, щоб розробники рекомендували свою продукцію, коли вони вирішують представлені проблеми, ми просимо вас надати чіткий контекст, чому ваш продукт є відповіддю та як він вирішує проблему. Для отримання додаткової інформації про те, як запитувати різні та формат запиту і відповіді StackExchange, перегляньте наш FAQ .
Ян Ч.

Я думаю, він має приблизно ті ж функції, що й інші інструменти, рекомендовані тут. Різниця полягає в тому, що у вас є графічний інтерфейс, і ви можете зберігати файли, що містять рядки пошуку / заміни. Він має всю функціональність, про яку просив nwinkler. Він може шукати та замінювати (також використовуючи регулярні вирази) у кількох файлах / вкладених структурах каталогів і має (принаймні, так я вважаю) простий у користуванні графічний інтерфейс.
thomasguenzel
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.