Автозамена большого числа соответствий, как реализовать?

12
regta
На сайте с 15.04.2006
Offline
319
528

Здравствуйте, такой вопрос

Есть набор соответствий (набор текстовых символов латиницей), несколько тысяч строк

типа

asdecd = djfjdj
mvjfkf=cmkd
mcfk=cmdmd
...... и т.д. несколько тысяч строк

И есть файл xml (или можно в обычный блокнот перевести)

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

Что-то не могу сообразить, буду признателен за идеи. Спасибо



Цитируйте, плиз, историю переписки в личке. Спасибо.
VK
На сайте с 26.04.2006
Offline
176
#1
regta :

Здравствуйте, такой вопрос

Есть набор соответствий (набор текстовых символов латиницей), несколько тысяч строк

типа

asdecd = djfjdj
mvjfkf=cmkd
mcfk=cmdmd
...... и т.д. несколько тысяч строк

И есть файл xml (или можно в обычный блокнот перевести)

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

Что-то не могу сообразить, буду признателен за идеи. Спасибо



Такое даже блокнот виндовый осилит

Ctrl+h замена в нем

regta
На сайте с 15.04.2006
Offline
319
#2
Vladimir K #:

Такое даже блокнот виндовый осилит

Ctrl+h замена в нем

Пару тысяч раз проделать процедуру Ctrl+h ?

Увы, это не решение.

Ctrl+h это очевидно, если 3-5-7-10 замен, а если 2-3-4-5 тысяч замен, вот вопрос...

Алеандр
На сайте с 08.12.2010
Offline
205
#3

Любой язык программирования. Простой скрипт чтения файла и поиска в нем вхождения из списка. Прогнали значение, перешли к следующему.
Можно даже bash, используя утилиту replace. Я, в основном, вручную замены прям в файлах с ее помощью и выполняю. Ну или всякими sed/awk в цикле.

Можно даже не скрипт, а взять вот эти строки

asdecd = djfjdj

превратить их в том же notepad++ через регэксп в

replace 'asdecd' 'djfjdj' -- file.csv
replace 'mvjfkf' 'cmkd' -- file.csv
replace 'mcfk' 'cmdmd' -- file.csv

и выполнить. И всех вопросов.

margo25
На сайте с 19.03.2017
Offline
68
#4
regta #:

Пару тысяч раз проделать процедуру Ctrl+h ?

Увы, это не решение.

Ctrl+h это очевидно, если 3-5-7-10 замен, а если 2-3-4-5 тысяч замен, вот вопрос...

Берешь программу BURUNDUKPRO WISHBRAIN, и проделываешь операцию ctrl + h , хоть миллион раз. Это робот программный

Автоматизация действий пользователя в среде Windows. Сайт компании https://heticx.ru/
donc
На сайте с 16.01.2007
Offline
686
#5

В нотепалж плюс вроде как можно, но не пробовал

https://stackoverflow.com/questions/10036705/how-to-automate-a-series-of-search-and-replace-operation-in-notepad

2

Пример скрипта Multiples_SR.py (см. Обсуждение) из коллекции примеров скриптов плагина Python Script делает то, что вам нужно.

Из объяснения скрипта:

Этот скрипт :

Считывает существующий "SR_List.txt" файл ТЕКУЩЕГО каталога, содержащий список строк ПОИСКА / ЗАМЕНЫ, ПО ОДНОЙ В строке
Выбирает по одному ПАРУ регулярных выражений / выражений / строк / символов ПОИСКА и ЗАМЕНЫ
Выполняет этот текущий S / R в ТЕКУЩЕМ отредактированном файле в NOTEPAD ++
Цикл до КОНЦА файла
Любая ЧИСТАЯ ПУСТАЯ строка или строка комментария, начинающаяся с '#', из "SR_list.txt"просто ИГНОРИРУЕТСЯ

Для КАЖДОЙ строки в файле "SR_List.txt" используется следующий формат

<DELIMITER><SEARCH regex><DELIMITER><REPLACE regex><DELIMITER>
how to automate a series of search and replace operation in Notepad++
how to automate a series of search and replace operation in Notepad++
  • 2012.04.05
  • Amit Amit 1,128 6 6 gold badges 15 15 silver badges 29 29 bronze badges
  • stackoverflow.com
I am having a file in which there are number of lines which i have to remove. These lines can be distinguished using regular expression and thus utilizing series of search and replace i am able to remove them. Now i have to repeat the same task a number of times...
Продвижение сайтов от 25 000 в мес, прозрачно, надежно https://searchengines.guru/ru/forum/818412 , но не быстро, отзывы
alaev
На сайте с 18.11.2010
Offline
857
#6
donc #:

В нотепалж плюс вроде как можно, но не пробовал

https://stackoverflow.com/questions/10036705/how-to-automate-a-series-of-search-and-replace-operation-in-notepad

Можно. При нажатии ctr+h появляется заменить и заменить все. Плюс регулярные выражения. 

Ему как раз это и надо.

Создание и продвижение сайтов - https://alaev.net , аудиты сайтов, контекстная реклама
VK
На сайте с 26.04.2006
Offline
176
#7
regta #:

Пару тысяч раз проделать процедуру Ctrl+h ?

Увы, это не решение.

Ctrl+h это очевидно, если 3-5-7-10 замен, а если 2-3-4-5 тысяч замен, вот вопрос...

или вы не четко задачу описали или не увидели что там есть кнопка заменить, а есть еще заменить все.

она и заменит и 1 и 5к раз за пару секунд

donc
На сайте с 16.01.2007
Offline
686
#8
alaev #:
Плюс регулярные выражения. 

Регулярка удобно всякую ерунду из текста удалять, а тут задача сложнее, но думаю решаемо

[Удален]
#9
donc #:
решаемо

Конечно решаемо. Любым ЯП и регулярками.

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

Z0
На сайте с 03.09.2009
Offline
824
#10

На php загнать в массив что заменить, массив чем заменить и перебрать файл.

function change_value($text) {

$text = str_replace(array('1','2','3'),   

                                   array('4','5','6'),   

$text);

return $text;

}

$text = change_value('123456');

echo $text;

Результат:  456456

Перебор файла лень писать :))))

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий