Войти

Показать полную графическую версию : [решено] Обработка текста между двумя заданными наборами символов


konatash@vk
10-12-2020, 22:33
Необходимо отредактировать строки в 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
konatash@vk, если это реальная потребность — давайте а) сам исходный файл, б) результирующий файл, упаковав их в архив.

Fors1k
11-12-2020, 01:48
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




© OSzone.net 2001-2012