Подтвердить что ты не робот

Какой лучший инструмент для поиска и замены регулярных выражений над несколькими файлами?

Предпочтительно, если это возможно, инструменты.

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

4b9b3361

Ответ 1

Perl. Серьезно, это делает sysadmin вещи намного проще. Вот пример:

perl -pi -e 's/something/somethingelse/g' *.log

Ответ 2

sed быстро и просто:

sed -e "s/pattern/result/" <file list>

вы также можете присоединиться к нему с помощью find:

find <other find args> -exec sed -e "s/pattern/result/" "{}" ";"

Ответ 3

Textpad хорошо справляется с этим в Windows. И это очень хороший редактор.

Ответ 4

Неудивительно, что Perl отлично справляется с этим, в сочетании с достойной оболочкой:

for file in @filelist ; do
  perl -p -i -e "s/pattern/result/g" $file
done

Это имеет тот же эффект (но более эффективен и без условия гонки):

for file in @filelist ; do
  cat $file | sed "s/pattern/result/" > /tmp/newfile
  mv /tmp/newfile $file
done

Ответ 5

Редактор каталога Emacs имеет функцию `dired-do-query-replace-regexp 'для поиска и замены регулярного выражения по набору отмеченных файлов.

Ответ 6

Я написал бесплатный инструмент командной строки для Windows, чтобы сделать это. Он называется rxrepl, он поддерживает поиск в формате unicode и файл. Некоторые из них могут оказаться полезными.

Ответ 7

В Windows мне нравилось WinGrep

В Ubuntu я использую Regexxer.

Ответ 8

Для Mac OS X TextWrangler выполняет эту работу.

Ответ 9

Для поиска и замены в нескольких файлах в Windows я нашел rxFind, чтобы быть очень полезным.

Ответ 10

Мой личный фаворит - PowerGrep от JGSoft. Он взаимодействует с RegexBuddy, который может помочь вам создать и протестировать регулярное выражение, автоматически поддерживать все изменения (и предоставляет возможности отмены), предоставляет возможность анализировать несколько каталогов (с шаблонами имен файлов) и даже поддерживает такие форматы файлов, как Microsoft Word, Excel и PDF.

PowerGrep Screenshot

Ответ 11

Я бы пошел за bash + find + sed.

Ответ 12

Вим для спасения (и президент;-)). Попробуйте:

vim -c "argdo! s:foo:bar:gci" <list_of_files>

(Я действительно люблю переключатель Vim -c, это волшебство. Или если вы уже в Vim и открыли файлы, например:

vim <list_of_files>

Только проблема:

:bufdo! s:foo:bar:gci

Конечно, sed и perl также способны. НТН.

Ответ 13

У меня есть роскошь Unix и Ubuntu; В обоих случаях я использую gawk для всего, что требует по очереди поиска и замены, особенно для строк за строкой подстроки. В последнее время это было самым быстрым для обработки 1100 изменений в миллионах строк в сотнях файлов (один каталог) На Ubuntu я являюсь поклонником regexxer

 sudo apt-get install regexxer

Ответ 14

В Windows есть бесплатная альтернатива, которая работает лучше всего: Notepad ++

Перейдите в раздел "Поиск" → "Найти файлы". Можно указать каталог, шаблон файла, установить регулярные выражения, затем просмотреть совпадения и, наконец, рекурсивно заменить все файлы.

Ответ 15

Мне нравится этот инструмент:

http://www.abareplace.com/

Дает вам "как вы печатаете" предварительный просмотр своего регулярного выражения... FANTASTIC для тех, кто не очень разбирается в RE... и очень быстро меняет сотни или тысячи файлов за раз...

И затем дайте UNDO свои изменения также...

Очень приятно...

Патрик Стейл - http://www.podiotools.com

Ответ 16

Если "текстовая панель" является допустимым ответом, я бы предложил Sublime Text спуститься вниз.

Редактирование нескольких курсоров - еще более эффективный способ сделать замены в целом, которые я нахожу, но его "" Найти в файлах "" - это верхний уровень для замены объемного регулярного выражения/обычного поиска.

Ответ 17

jEdit regex search & замена в файлах довольно приличная. Тем не менее, слегка переборщить, если вы используете его только для этого. Он также не поддерживает переменную, которую вы запросили.

Ответ 18

Я нашел инструмент RxFind полезный (бесплатный OSS).

Ответ 19

Brackets (исходный код, deb/Ubuntu, OSx и Windows) имеет хорошую визуализацию результатов, позволяя их индивидуально применять замена. Вы можете искать по стандартным текстам, чувствительным к регистру или нет, и регулярным выражением. Очень важно: вы можете исключить шаблоны файлов и каталогов в поиске.