Соскрести и заменить несколько строк строки - PullRequest
0 голосов
/ 03 апреля 2019

Мы используем Xidel для очистки и FNR Find and Replace для замены текста. Процесс: очистите файл .txt для значений и замените все это в другом существующем файле.

Команда:

for /f "DELIMS=" %v in ('^"xidel -s input.txt -e "($raw)"^"') do set "values=%v"

Если input.txt имел только два значения, он выводит это дважды:

user@pc C:\
$ set "values=value1"

user@pc C:\
$ set "values=value2"

И теперь мы запускаем текст FNR и заменяем:

fnr.exe --cl --find "#replacevalues" --replace "!values!" --silent --dir "%cd%" --fileMask "output.txt"

Все работы, кроме output.txt, содержат только value2. Он печатает только последний элемент, независимо от того, сколько строк очищено (это динамический файл .txt всегда содержит произвольное количество строк от 1 до 10 или более)

output.txt должен содержать:

value1
value2

Xidel печатает его правильно в командной строке без проблем

xidel -s input.txt -e "($raw)"
value1
value2

Как мы можем напечатать это в существующий файл .txt, в котором уже есть случайный контент, и только элемент #replacevalues заменяется очищенными значениями, что означает, что он также разбивает строки и выталкивает любой существующий контент?

https://i.imgur.com/n3bbXVR.jpg

...