Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программное обеспечение Windows (http://forum.oszone.net/forumdisplay.php?f=7)
-   -   [решено] Замена повторяющегося слова на список слов в Notepad++ (http://forum.oszone.net/showthread.php?t=349659)

lyohalyoha 20-09-2021 21:16 2967187

Замена повторяющегося слова на список слов в Notepad++
 
Здравствуйте! Как в текстовом документе одно повторяющееся слово заменить на готовый список слов?
Например,имеются одинаковые строки:
https://www.youtube.com/watch?v=JLloDMeATt
https://www.youtube.com/watch?v=JLloDMeATt
https://www.youtube.com/watch?v=JLloDMeATt
https://www.youtube.com/watch?v=JLloDMeATt
https://www.youtube.com/watch?v=JLloDMeATt
Нужно повторяющееся JLloDMeATt заменить на список слов,например на:
agi9LlwFAm
Feugf2738f
m829e324
324iertiure
wqiHkbsFR
Если в Notepad++ такого сделать нельзя,то может в другом текстовом редакторе можно или программе?

Iska 21-09-2021 00:57 2967198

lyohalyoha, само слово известно?

lyohalyoha 21-09-2021 17:32 2967265

Цитата:

Цитата Iska
само слово известно? »

Да,в примере это JLloDMeATt,а в реальном документе другое слово,тоже повторяющееся.

Iska 22-09-2021 01:34 2967283

lyohalyoha, упакуйте образец:
Цитата:

Цитата lyohalyoha
текстовом документе »

в архив, каковой приложите к сообщению.

DJ Mogarych 22-09-2021 09:20 2967295

Powershell:
Код:

$whatToReplace = "JLloDMeATt"
$wordsList = gc "D:\temp\kkk\Список слов.txt"
$resultFile = "D:\temp\kkk\Результат.txt"
$c = 0

gc "D:\temp\kkk\Текстовый документ.txt" |% {
    if ($_ -match $whatToReplace) {
    $_ -replace "$whatToReplace","$($wordsList[$c])" >> "$resultFile"
    $c++
    }
    else {
    $_ >> "$resultFile"
    }
}

А если количество строк, которые нужно заменить, не совпадает с количеством строк в списке?

lyohalyoha 22-09-2021 14:31 2967315

Цитата:

Цитата DJ Mogarych
А если количество строк, которые нужно заменить, не совпадает с количеством строк в списке? »

Количество строк совпадает

Цитата:

Цитата DJ Mogarych
Код:
$whatToReplace = "JLloDMeATt"
$wordsList = gc "D:\temp\kkk\Список слов.txt"
$c = 0
gc "D:\temp\kkk\Текстовый документ.txt" |% {
if ($_ -match $whatToReplace) {
$_ -replace "$whatToReplace","$($wordsList[$c])"
$c++
}
} »

Код ваш работает,но в текстовый документ не сохраняет.И на диске С и на диске Е пробовал,с правами админа и без-не сохраняет.В самом Powershell готовый результат показывается только.Но я из него результат копирую.Меня так тоже устраивает ;-) Спасибо за помощь!

DJ Mogarych 23-09-2021 15:03 2967358

Добавил сохранение в файл в сообщение выше.

Заодно исправил ситуацию с невыводом несовпадающих строк.

lyohalyoha 26-09-2021 16:53 2967575

Цитата:

Цитата DJ Mogarych
Добавил сохранение в файл в сообщение выше.
Заодно исправил ситуацию с невыводом несовпадающих строк. »

Спасибо большое!


Время: 14:16.

Время: 14:16.
© OSzone.net 2001-