Заменить в нескольких файлах - графический инструмент для Linux

Он должен быть графическим. Никаких sed, awk, grep, perl и т. Д. Я знаю, как их использовать, и сейчас использую их, но мне нужно выбирать каждую замену в более чем 300 файлах.

Мне нужен инструмент, в котором я могу:

  • введите строку поиска
  • введите заменяющую строку
  • выберите каталог и расширение файла

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

  • заменить (и найти дальше)
  • найти следующий

Больше ничего. Reg.exp. поддержка - плюс, но не обязательна.

РЕШЕНО: Regexxer - это именно то, что мне нужно. Если кому-то это понадобится в Slackware, вот то, что вы необходимо скачать и как его скомпилировать (выбор правильной версии каждой зависимости может быть PITA)


person Milan Babuškov    schedule 09.10.2008    source источник


Ответы (6)


Я думаю, что regexxer - это именно то, что вы ищете:

Regexxer

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

См. Также снимок экрана, он очень похож на то, что вы описываете:

скриншот

person Jay    schedule 09.10.2008
comment
Я бы проголосовал против, но у меня недостаточно очков для этого. regexxer не имеет многострочного поля поиска, которое и поэтому может искать и заменять только одну строку. Инструмент jedit обрабатывает поиск и замену многострочного текста и поэтому является гораздо лучшим решением. - person Farrukh Najmi; 19.02.2013
comment
Согласитесь с Фаррухом, посмотрите его ответ и проголосуйте, пожалуйста: stackoverflow.com/a/189356/721073 - person a coder; 03.06.2014
comment
JEdit намного удобнее для пользователя. - person Nicholas DiPiazza; 21.03.2016

Emacs + dired + запрос-замена-регулярное выражение

Полный рецепт можно найти по этой ссылке (она довольно длинная, охватывает все возможные альтернативы),

person ADEpt    schedule 09.10.2008
comment
Я использовал это в Emacs, и это потрясающе. Он делает именно то, что хочет OP. - person EfForEffort; 10.10.2008
comment
Хотя мне больше нравится Regexxer, я проголосую за вас, потому что это правильное решение. Спасибо. - person Milan Babuškov; 10.10.2008

jEdit делает именно то, что вам нужно. Он написан на Java и хорошо работает в Linux, Windows и OS X (возможно, и в других операционных системах).

person Neall    schedule 09.10.2008
comment
Интересный. Я использовал jEdit 3-4 года назад, но не помню эту функцию. Доступно через какое-то дополнение? А может, тем временем добавили ... - person Milan Babuškov; 10.10.2008
comment
Я не знаю, как долго он там существует, но диалоговое окно текстового поиска позволяет искать совпадения с регулярными выражениями, и вы можете искать все открытые файлы или весь каталог, если хотите. - person Neall; 10.10.2008
comment
Как ни странно, Linux-версия jedit не имеет многострочной текстовой области в окне поиска и замены (версия 4.2final) - person Barth; 24.11.2008
comment
Я нашел единственное решение jedit, которое обрабатывает многострочный поиск и заменяет несколько файлов. По моему опыту, инструмент regexxer не обрабатывает многострочные. jedit в ubuntu linux действительно имеет многострочную текстовую область с использованием действия меню Search / Search In Directory. Этот ответ должен иметь наивысшие баллы, но по какой-то причине их нет, в то время как ответ с наивысшими баллами (regexxer) не поддерживает многострочный поиск. - person Farrukh Najmi; 19.02.2013
comment
jedit удобен в использовании. Другие инструменты, похоже, совсем не на шаг впереди bash, так в чем смысл - person Nicholas DiPiazza; 21.03.2016

Я все время использую gVim для этой задачи. Я открываю все файлы сразу, а затем использую команды для выполнения замены для каждого файла с запросом подтверждения. Обычно я использую ‹20 файлов, поэтому открываю их как вкладки и использую следующее:

:tabdo %s/foo/bar/gc

gVim отлично работает в Windows :) Мои коллеги часто используют Textpad, чтобы делать то же самое, но я бы сказал, что gVim в этом намного эффективнее.

person rmeador    schedule 09.10.2008
comment
bufdo работает с буферами, а не с вкладками, что очень полезно. Есть ли способ заставить его автоматически сохранять файлы при прохождении через буферы? - person Neil G; 09.06.2009
comment
Я не уверен, что нужно сохранять в процессе, но вы можете сохранить их все сразу, когда это будет сделано с помощью: wa. Вы также можете сделать: tabdo: w, я думаю, но не вижу в этом смысла. И, конечно, можно использовать буферы :). - person rmeador; 11.06.2009

В последнее время Кейт (если вы используете KDE) может это делать, но очень хитрым способом. Перейдите в «Правка> Поиск в файлах» и выберите папку, в которой находятся ваши файлы.

Хитрость в том, что только после появления результатов поиска вы найдете текстовое поле и кнопку «Заменить отмечен». Эта кнопка будет делать то, что вы хотите.

person Ahmed Rashed    schedule 17.11.2013
comment
Это доступно только в том случае, если вы активировали плагин Kate's Search & Replace. - person Fabian Rost; 25.04.2016

Если вы являетесь пользователем KDE, существует также kfilereplace.

person Flavio    schedule 28.08.2010