У меня есть файл с несколькими экземплярами Text_1
и Text1
и мне нужно заменить оба эти строки с Text_A
и TextB
соответственно.
В настоящее время я выполняю две функции поиска и замены для каждого файла, одна из которых находит Text_1
и заменяет его, Text_A
а другая - находит Text1
и заменяет его TextB
.
Есть ли способ сделать это все сразу, вместо того, чтобы дважды запустить «Найти и заменить»?
Я использую Dreamweaver CS3, но у меня также есть Notepad ++, обычный Notepad, OO Writer, MS Word, если так будет проще. В идеале я мог бы сделать это в Dreamweaver или Notepad ++, но я готов загрузить что-то еще, чтобы выполнить работу. Я бы предпочел не делать какие-либо вещи из командной строки или создавать командный файл (хотя я знаю об этом, я не понимаю этого на самом деле).
Если приведенное выше описание не понятно, позвольте мне объяснить это следующим образом ...
Я хочу запустить Find & Replace 1 раз в 1 документе, и я хочу, чтобы он выполнял ВСЕ из следующего во время этого одного экземпляра Find & Replace:
- Найти
Text_1
и заменить наText_A
- Найти
Text1
и заменить наTextB
Я не пытаюсь найти и заменить несколько документов.
Ответы:
Посмотри на Седа . Вы можете легко достичь своей цели только одной командной строкой
sed -e "s/Text_1/TextA/" -e "s/Text1/TextB/" <your_file.txt>your_file_new.txt
источник
Начиная с Notepad ++ 6.0, на самом деле это возможно без сценариев, использующих следующую технику:
Найти: (Text_1) | (Text2)
Заменить: (? 1Text_A) (? 2TextB)
Общий синтаксис:
? 1 относится к первой захваченной фразе и так далее.
Я получил это из следующего ответа: /programming//a/16104946/287101
источник
Используя Notepad ++, вы можете
Откройте все файлы, содержащие слова, которые вы хотите заменить, и используйте «Найти / Заменить» во всех открытых файлах.
Используйте Найти / Заменить в файлах
Запишите макрос, выполняющий параметры поиска и замены, и воспроизведите его
источник
Вам лучше запустить Find & Replace дважды, потому что у вас происходит две разные замены. Тем не менее, должно быть очень мало компромисса во времени обработки. Учтите следующее:
Запуск поиска и замены один раз, поиск по термину:
Для запуска мы будем предполагать, что он линейный и скажем, что он выполняется за O (n) времени.
Вы хотите найти два разных термина. Запуск Find & Replace дважды выглядит так:
что заняло бы O (2x1n) времени, или вдвое дольше, чем поиск одного термина.
Поиск двух терминов с двумя заменами теоретически будет выглядеть так:
Получение терминов не требует такой большой вычислительной мощности, поэтому, по сути, вы ищите два набора запросов для каждого термина, давая время O (1x2n), выполняя один раз, но ища два термина.
Несмотря на то, что вы сэкономите время, не загружая каждый термин дважды, вы потратите больше времени на поиск каждого термина дважды, так что нет особого компромисса, и, поскольку эта функция будет использоваться реже, чем поиск по одному термину с одной заменой, разработчики приложений просто предполагают не писать эта функциональность.
источник
Поддержка регулярных выражений в Notepad ++ строго ограничена. Без оператора чередования нет надежды даже приблизиться к тому, что вы хотите сделать. Вам нужно будет использовать
sed
или редактор, который имеет лучшую поддержку регулярных выражений.Источник
Смотрите также
GNUWin32
sed
для Windowsисточник
Я использую TextCrawler для пакетного поиска и замены. (Я использую Notepad ++ для одного поиска / замены по нескольким файлам, поскольку он работает быстрее, чем Textcrawler.) TextCrawler поддерживает регулярные выражения, а также обычный поиск / поиск. Пакетные файлы могут быть сохранены и загружены для дальнейшего использования.
источник
Также это можно сделать с помощью плагина ActiveX (для Notepad ++) и с помощью пользовательского скрипта:
источник
Это работает для всех номеров (чтобы удалить все номера из текста / статьи)
Нажмите Ctrl + H, чтобы открыть диалоговое окно «Найти и заменить».
В поле «Найти что» введите ^ #
Оставьте поле «Заменить на» пустым.
Заменить все.
источник