5 бесплатных инструментов для поиска и замены слова или фразы в нескольких текстовых файлах

То, что вас может сильно раздражать, когда у вас есть несколько текстовых файлов, которые могут иметь определенное имя или текстовую строку, которую вы хотите найти, — это необходимость просматривать каждый из них, чтобы попробуй и найди то, что хочешь. Очевидно, что это просто неэффективно, особенно когда нужно просмотреть сотни или более файлов. Еще больше разочаровывает, когда вы хотите найти в большом количестве файлов ключевые слова или фразы и заменить их чем-то другим, потому что такой инструмент, как Блокнот, не работает ни для чего, кроме самых простых задач.

Есть несколько более продвинутых текстовых редакторов, которые могут иметь некоторую форму функции для поиска и замены текстовых строк, но если вы не хотите использовать сам редактор, это может показаться бессмысленным. К счастью, есть инструменты, предназначенные для выполнения функции поиска и замены, и многие из них переносимы, что означает, что если вы хотите сделать это только один или два раза, ничего устанавливать не нужно. Предлагаем вам 5 инструментов поиска и замены с различными функциями.

1. Найти и заменить (FAR)

Инструмент «Найти и заменить» позволяет просто искать строки внутри файлов, заменять строки внутри совпадающих файлов, а также находить и заменять текст внутри имена файлов. FAR — это кроссплатформенный и переносимый инструмент, потому что он построен на Java, но при этом сильно загружает память. И, конечно же, для ее использования вам потребуется установленная среда выполнения Java.

Практически все поля, в которые нужно вводить текст, будут принимать регулярные выражения, перейдите в Help -> Regex для получения дополнительной информации о том, как их использовать. Обе функции замены и переименования требуют, чтобы вы сначала запустили функцию поиска, и вам просто нужно указать папку, шаблон имени файла и дополнительный контент для поиска или отменить его, установив флажок «Исключить». В программе также есть несколько основных фильтров выбора, некоторые операции копирования, перемещения и удаления файлов и параметры для обрезки или удаления пустых строк из файлов, а также возможность изменять кодировку файлов между Windows-1252/UTF-8/US. -ASCII.

Загрузить Найти и заменить


2.

Для обычного использования WildReplace — это простой в использовании инструмент, который может выполнять простой поиск заданной строки и отображать результаты в проводнике, как структурированные с цветовой кодировкой. дерево папок. Установите флажок «Заменить на» и введите строку, чтобы начать операцию поиска и замены.

Есть некоторые очень полезные функции, такие как некоторые простые файловые операции, где вы можете скопировать или переместить файлы с соответствующей строкой в ​​указанную папку или даже удалить их навсегда. Расширенные параметры позволят фильтровать файлы по размеру, атрибутам файла и дате. Самая мощная функция — это ввод регулярных выражений, где вы можете ввести свои собственные аргументы или нажать кнопку «Справка RegEx», чтобы открыть окно, полное последовательностей, классов и разделителей, которые можно использовать. Он также включает очень удобный тестер выражений, позволяющий опробовать различные последовательности регулярных выражений. WildReplace также является переносимым.

Загрузить Wild Replace


3.

Программа представляет собой полностью переносимый автономный исполняемый файл, но имейте в виду, что он создает ярлык для себя в разделе Стандартные в меню Пуск. Использование — это просто случай выбора текстового расширения для поиска, такого как .txt, .log или .html и т. Д. (Их около 15), найдите папку, в которой вы хотите искать, и отметьте опцию подпапки, если необходимо, введите строки «Искать» и «Заменить на», а затем нажмите кнопку «Перейти». Если совпадения будут найдены, TurboSR отобразит всплывающее окно, в котором вы можете пропустить замену, заменить выбранный текст или заменить все совпадения с этого момента.

Загрузить TurboSR


4. Заменить текст

Заменить текст раньше назывался BK ReplaceEm и был довольно популярным инструментом для поиска и замены операций. Хотя инструмент замены текста больше не поддерживается и не разрабатывается, он по-прежнему довольно полезен и прост в использовании даже для замены нескольких фраз в нескольких текстовых файлах. Портативный инструмент также является полезным преимуществом.

Программа работает с использованием групп, в которые вы добавляете отдельные файлы или целые папки, а затем настраиваете весь поиск и замену текста для этой группы. Это очень полезно, потому что у вас может быть несколько наборов файлов и местоположений, каждый со своим собственным набором заменяющих строк. Просто добавьте файлы/папки в группу, щелкните группу и введите весь исходный текст и текст замены. Резервные копии могут быть настроены и включены по умолчанию с расширением .backup. Щелкните правой кнопкой мыши текст, чтобы перейти к расширенному редактированию, где вы можете изменить поиск между регистром, точным, диапазоном и регулярным выражением, а также выбрать замену текста или вставку его до или после строки поиска.

Загрузить текст замены


5.

TextCrawler, без сомнения, очень многофункциональная утилита и имеет ряд встроенных расширенных функций. Принимая во внимание все предлагаемые дополнительные опции, программа по-прежнему относительно прост в эксплуатации и может использоваться для более стандартных операций поиска и замены в отдельном файле или всей папке без особых проблем.

В дополнение к 7 предустановленным расширениям файлов вы также можете указать свой собственный фильтр и добавить фильтр исключения. Существует стандартный режим, в котором вы можете заменить, вставить до/после, удалите или очистите совпавшую строку и выберите режим регулярного выражения, чтобы войти в расширенный поиск и заменить функции. Пользовательские регулярные выражения можно сохранить с помощью библиотечной функции, а также есть тестер выражений, где вы можете попробовать их перед применением к файлам. Некоторые другие полезными функциями являются нечеткий поиск, который найдет почти совпадения с поисковым текстом, пакетный редактор, который позволяет использовать несколько вариантов замены в одних и тех же файлах, и средство извлечения текста, где вы можете скопировать текст в новый файл. Резервное копирование можно включить в параметрах.

Загрузить TextCrawler

Примечание редактора: Если вы используете сторонний текстовый редактор, такой как Notepad ++, также стоит проверить, есть ли у него какая-либо форма поиска и замены в нескольких файлах. функция. Например, в Notepad ++ вы можете перейти в «Поиск» -> «Найти в файлах…» и выполнить поиск и заменить содержимое каталога.



Найти и заменить текст в нескольких файлах

Я надеюсь, что кто-нибудь сможет помочь мне создать пакетный файл или аналогичный для поиска и замены текста в нескольких файлах. Я пробовал много утилит «искать и заменять», но не нашел того, что делает то, что мне нужно.

Требования следующие: найти и заменить ОДИН текст в нескольких файлах другим текстом ДЛЯ КАЖДОГО ФАЙЛ.

Пример:

File1.txt, file2.txt, file3.txt имеют текстовую строку «измени меня, пожалуйста»

для file1.txt заменить текстовую строку «смени меня, пожалуйста» на «файл1 изменен» сохранить как исходное имя файла (file1.txt) для file2.txt заменить текстовую строку «смени меня, пожалуйста» на «файл2 изменен» сохранить как исходное имя файла ( file2.txt) для file3.txt заменить текстовую строку «смени меня, пожалуйста» на «file3 changed» сохранить как исходное имя файла (file3.txt)


2

Использование команд PowerShell:

  Get-Content c:  file1.txt |  ForEach-Object {$ _ -replace "измени меня, пожалуйста", "файл1 изменен"} |  Set-Content c:  changed1.txtGet-Content c:  file2.txt |  ForEach-Object {$ _ -replace "измени меня, пожалуйста", "файл2 изменен"} |  Set-Content c:  changed2.txt  

оставляет мне два файла:

changed1.txt

changed2.txt

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

changed1.txt в file1.txt

changed2.txt в file2. txt

Улучшите этот ответ
отредактировал 12 авг. в 9:23
sblair
12,4k66 золотых значков4242 серебряный знак7272 бронзовых знака
ответил 12 авг. div>
добавить комментарий |

Использование команд PowerShell:

  Get-Content c:  file1.txt |  ForEach-Object {$ _ -replace "измени меня, пожалуйста", "файл1 изменен"} |  Set-Content c:  changed1.txtGet-Content c:  file2.txt |  ForEach-Object {$ _ -replace "измени меня, пожалуйста", "файл2 изменен"} |  Set-Content c:  changed2.txt  

оставляет мне 2 файла:

changed1.txt

changed2.txt

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

changed1.txt на file1.txt

changed2.txt на file2.txt


1

Powergrep может делать то, что вы просите.

Улучшите этот ответ
ответил 12 августа 2011 в 07:36
  • Спасибо за ответ, я посмотрел на powergrep, и хотя я уверен, что он замечательный .. Я не могу оправдать ценник% 159.00 за th Несколько файлов, которые я хотел бы делать так часто 🙁 — pckeys 12 августа 2011 г., 07:58
  • Или загрузите activeperl. . . — surfasb 12 авг., 2011 в 8:46
добавить комментарий |

Powergrep может делать то, что вы просите.


1

Если файлы не слишком большие, вы можете использовать

  $ filenames =  @ ("file1.txt", "file2.txt", "file3.txt") foreach ($ file в $ filenames) {$ replaceStr = $ file + 'changed' (Get-Content $ file) |  Foreach-object {$ _ -replace 'измени меня, пожалуйста', $ replaceStr} |  Set-Content $ file}  

Обратите внимание на скобки вокруг (Get-Content $ file), что означает, что файл считывается в память (отсюда и требования, чтобы файлы были небольшими), но это означает, что файл больше не используется, когда вы собираетесь записать его обратно.

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

  Cp $ tempfilename $ file rm  $ tempfilename  

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

Улучшите этот ответ
отредактировано 12 августа 2011 в 9:35
ответ дан 12 авг.
добавить комментарий |

Если файлы не слишком большие, вы можете использовать

  $ filenames =  @ ("file1.txt", "file2.txt", "file3.txt") foreach ($ file в $ filenames) {$ replaceStr = $ file + 'changed' (Get-Content $ file) |  Foreach-object {$ _ -replace 'измени меня, пожалуйста', $ replaceStr} |  Set-Content $ file}  

Обратите внимание на скобки вокруг (Get-Content $ file), что означает, что файл считывается в память (отсюда и требования, чтобы файлы были небольшими), но это означает, что файл больше не используется, когда вы собираетесь записать его обратно.

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

  Cp $ tempfilename $ file rm $ tempfilename  

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


1

Я обнаружил проблему с вашим скриптом. Если $ replaceStr = $ file + ‘changed’, к измененному файлу добавляется sting $ file. Должно быть: $ replaceStr = ‘changed’

Я изменил это для своих целей, но теперь имена файлов динамические, строка изменена правильно, а пути не нарушены.

Не забудьте сначала запустить это … Set-ExecutionPolicy RemoteSigned

Следующий код:

  $ filenames =  @ (get-childitem -Path "C:  Program Files  Tivoli  TSM  baclient  *. opt" |% {$ _. FullName}) foreach ($ file в $ filenames) {$ replaceStr = 'New String' (Get-Content $ file) |  Foreach-объект {$ _ -replace 'Old String', $ replaceStr} |  Set-Content $ file Write-Host Processed $ file}  

JW

Улучшите этот ответ
отредактировано 6 ноября 2015, 19:02
ответил 06 ноя 2015, в 18:17
добавить комментарий |

Я обнаружил проблему с вашим скриптом. Если $ replaceStr = $ file + ‘changed’, к измененному файлу добавляется sting $ file. Должно быть: $ replaceStr = ‘changed’

Я изменил это для своих целей, но теперь имена файлов динамические, строка изменена правильно, а пути не нарушены.

Не забудьте сначала запустить это … Set-ExecutionPolicy RemoteSigned

Следующий код:

  $ filenames =  @ (get-childitem -Path "C:  Program Files  Tivoli  TSM  baclient  *. opt" |% {$ _. FullName}) foreach ($ file в $ filenames) {$ replaceStr = 'New String' (  Get-Content $ file) |  Foreach-объект {$ _ -replace 'Old String', $ replaceStr} |  Set-Content $ file Write-Host Processed $ file}  

JW


0
  perl -p -i -e 's/смени меня, пожалуйста/$ argv changed/' file1 file2 subdir/*. txt  foo/*. xyz  

Вы можете загрузить Perl (для Windows) из Activestate или Strawberry и т. д.

Улучшите этот ответ
ответил 12 августа 2011 в 9:17
добавить комментарий |

  perl -p -i -e 's/смени меня, пожалуйста/$ argv changed/' file1 file2 subdir/ * .txt foo/*. xyz  

Вы можете загрузить Perl (для Windows) из Activestate или Strawberry и т. д.


0

Вы можете использовать eclipse — просто загрузите файлы в проект, следуя инструкциям на следующей странице:

http://www.avajava.com/tutorials/lessons/how-do-i-do-a-find-and-replace-in-multiple-files-in-eclipse.html? page = 1

Обычно выполняется поиск в папке, содержащей файлы. Результаты появятся на вкладке поиска.. Щелкните правой кнопкой мыши файл, содержащий файлы, которые вы хотите изменить, и выберите «Заменить».

Это изменит все файлы, которые вы хотите. Добавлен бонус в виде ваших файлов в проекте eclipse, который может быть полезен по-разному. (Контроль версий, подсветка синтаксиса, модульное тестирование и т. Д.)

Улучшите этот ответ
ответил 14 февраля ’13 в 17:22
добавить комментарий |

Вы можете использовать eclipse — просто загрузите файлы в проект, следуя инструкциям на следующей странице:

http://www.avajava.com/tutorials/lessons/how-do-i-do-a-find-and-replace-in-multiple-files-in-eclipse.html?page=1

В основном выполните поиск в папке, содержащей файлы. Результаты появятся на вкладке поиска. Щелкните правой кнопкой мыши файл, содержащий файлы, которые вы хотите изменить, и выберите «Заменить».

Это изменит все файлы, которые вы хотите изменить. Добавлен бонус в виде ваших файлов в проекте eclipse, который может быть полезен по-разному. (Контроль исходного кода, выделение синтаксиса, модульное тестирование и т. Д.)


0

Открывать несколько файлов в Notepad ++ и находить/заменять все открытые файлы.

Улучшите этот ответ
ответил 29 апр 2016, 17:51
  • Можно ли автоматизировать Notepad ++ в пакетном файле? Если да, то как OP поступит с этим? Если нет, это не ответ на вопрос OP. — Heptite 29 апр. ’16 в 22:44
добавить комментарий |

Открывать несколько файлов в Notepad ++ и находить/заменять во всех открытых файлах.

Оцените статью
logicle.ru
Добавить комментарий