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

1167
AllSolutions

Я использую Windows 7. Мне нужно заменить несколько вхождений нескольких слов в нескольких текстовых файлах.

Например, предположим, что есть 20 файлов. У меня есть список слов, чтобы найти, и слова, чтобы заменить их. Предположим, в списке поиска есть такие слова, как «12345678», «ABCDEFGH» и т. Д. В списке замены есть такие слова, как «76892», «A563» и т. Д.

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

Вместо того, чтобы делать это вручную один за другим, есть ли способ сделать это быстро, используя какую-то утилиту (должна быть бесплатной)? Я могу сделать это программно, но я ищу ответ без написания кода. Если бы между списком поиска и списком замены был шаблон, я мог бы использовать регулярные выражения, но шаблонов нет.

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

0
«Я могу сделать это программно, но я ищу ответ без написания какого-либо кода» - могу ли я спросить, почему вы ищете этот тип решения? Dave 7 лет назад 1
Проще использовать уже имеющуюся утилиту, а не писать код. Во-вторых, я открыт для использования PowerShell, но я не знаю, и процесс обучения займет время. Если кто-то может просто опубликовать точный скрипт PowerShell, который может сделать эту работу, я могу его использовать. AllSolutions 7 лет назад 0
Может ли PowerShell зацикливаться на всех файлах в каталоге (нет подкаталогов)? Может ли он принимать входные данные для списка поиска и списка замены, которые хранятся во внешнем файле (текстовом файле или файле Excel)? Регулярные выражения не нужны, если он может читать список поиска и замены из внешнего источника. AllSolutions 7 лет назад 0
Самым простым способом, который я смог найти, является использование Notepad ++: там вы можете заменить содержимое списка на [плагин скрипта Python] (http://stackoverflow.com/questions/11389466/multiple-word-search-and-replace-in- notepad / 16104946 # 16104946), а также [найти и заменить в файлах] (http://docs.notepad-plus-plus.org/index.php/Searching_And_Replacing) Máté Juhász 7 лет назад 1
Ах, но я не знаком с Python. Во-вторых, указание всех слов для поиска и замены слов, встроенных в регулярное выражение (как показано в опубликованной вами ссылке), может оказаться невозможным, поскольку список БОЛЬШОЙ. AllSolutions 7 лет назад 0
Сценарий Python, размещенный по этой ссылке, довольно прост. Я могу использовать его даже без понимания синтаксиса Python. Но как мне запустить этот скрипт из NotePad ++ и как запустить его для нескольких файлов? AllSolutions 7 лет назад 0
@AllSolutions, вы сказали, что можете делать это программно, а теперь говорите, что не можете?!? Dave 7 лет назад 0
@ Дэйв, я могу сделать это программно, используя C #. Я не знаю всех языков :) AllSolutions 7 лет назад 0
@Mate Juhasz, я установил NotePad ++ и плагин Python Script. Как выбрать сценарий в окне «Найти в файлах» или как запустить сценарий для нескольких файлов в папке? Сценарий, кажется, запускается только для активного файла. AllSolutions 7 лет назад 0
просто потому, что у меня было немного свободного времени и веселья для написания кода, вот как выглядит сценарий PS для этого случая: `get-childitem" C: \ yourpath "-filter * .txt | % {(Get-Content $ ($ _. FullName)) -Замена "12345678", "A563" | Set-Content} ` SimonS 7 лет назад 0
Я попробую это, но можете ли вы предложить, какие изменения следует внести в ваш код, чтобы прочитать тексты поиска и замены из внешнего файла? Как я уже сказал, я не знаю Python. AllSolutions 7 лет назад 0

0 ответов на вопрос

Похожие вопросы