Компьютерный форум 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=347299)

konatash@vk 10-12-2020 22:33 2942569

Обработка текста между двумя заданными наборами символов
 
Необходимо отредактировать строки в txt файле.
Пример:

какой-либо текст
{i} текст {/i}
текст
{i} какой-либо текст
текст
текст {/i}

Где символы {i} означают начало блока, а {/i} - конец, и всегда находятся в начале и в конце строки соответственно.
При этом символы {i} и {/i} нужно проставить в каждом существующем блоке так, чтобы разделить их на несколько самостоятельных блоков. То есть чтобы каждая строка в блоке начиналась на {i}, а заканчивалась на {/i}.
Должно в итоге получиться так:

какой-либо текст
{i} текст {/i}
текст
{i} какой-либо текст {/i}
{i} текст {/i}
{i} текст {/i}

Решить данную проблему самостоятельно не получается. Заранее спасибо.

Iska 10-12-2020 22:44 2942571

konatash@vk, если это реальная потребность — давайте а) сам исходный файл, б) результирующий файл, упаковав их в архив.

Fors1k 11-12-2020 01:48 2942585

Код:

param(
    $pathIn  = "C:\file.txt",
    $pathOut = "C:\file1.txt"
)cls

$text = gc $path -raw
(($text|sls '{i}(\s|\S)*?{/i}'-a).Matches.value)|%{
    $text = $text -replace $_,
    ($_-replace"`r`n"," {/i}`r`n{i} ")
}
$text|Out-File $pathOut



Время: 20:53.

Время: 20:53.
© OSzone.net 2001-