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

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] замена текста (несколько строк) (http://forum.oszone.net/showthread.php?t=337243)

Alexander_88 18-10-2018 05:30 2836380

замена текста (несколько строк)
 
Здравствуйте, имеется код:

Код:

@echo off

set "word_or_frase=Download"
set "replacement=Download1"

for %%i in (
"C:\Users\Alexander\OneDrive\work\new\old.txt"

 ) do (
 echo WScript.Echo^(Replace^(WScript.CreateObject^("Scripting.FileSystemObject"^).OpenTextFile^(%%i^).ReadAll^(^),"%word_or_frase%","%replacement%"^)^)>.vbs
 cscript //nologo .vbs| clip
 mshta "vbscript:CreateObject("Scripting.FileSystemObject").GetStandardStream(1).Write(ClipboardData.GetData("text"))&Close()"| more>%%i
 )
del .vbs

Он делает замену текста в txt файле с
Код:

Download
на
Код:

Download1
Как сделать, чтобы слово
Код:

Download
изменилось на:
Код:

<prefix>$s</prefix>
Download

?
т.е. выше каждого встречного слова "Download" в txt документе, нужно добавить строку с содержимым
Код:

<prefix>$s</prefix>

Busla 18-10-2018 10:19 2836403

Какой лютый трэш и угар :o

Перейти с vbscript на jscript, и тогда использовать литералы перевода строки \r\n прямо в переменной замены.

alpap 18-10-2018 15:55 2836461

Код:

sed-4.5.exe -i "s/Download/<prefix>$s<\/prefix>\nDownload/g" "file.txt"

Alexander_88 19-10-2018 01:30 2836524

Цитата:

Цитата alpap
sed-4.5.exe -i "s/Download/<prefix>$s<\/prefix>\nDownload/g" "file.txt" »


Код:

"sed-4.5.exe" не является внутренней или внешней
командой, исполняемой программой или пакетным файлом.


Iska 19-10-2018 02:07 2836528

sed for Windows

YuS_2 19-10-2018 10:21 2836550

Цитата:

Цитата Alexander_88
т.е. выше каждого встречного слова "Download" в txt документе, нужно добавить строку с содержимым »

Если буквально, т.е. без учета, что там уже может находиться такая строка и местоположение в строке слова "Download", не имеет значения:
powershell
Код:

(gc test.txt -enc utf8) -replace "(\bDownload\b)","<prefix>`$s</prefix>`n`$1"|sc test.txt -enc utf8

Alexander_88 19-10-2018 19:16 2836612

спасибо :)


Время: 05:07.

Время: 05:07.
© OSzone.net 2001-