|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » Любой язык - Распределение блоков текста из одного тхт файла по нескольким |
|
Любой язык - Распределение блоков текста из одного тхт файла по нескольким
|
Ветеран Сообщения: 546 |
Здравствуйте, подскажите, пожалуйста, как решить такую не простую задачу:
есть исходный файл posts.txt, состоящий из блоков (которых очень много): <subject>Video films</subject> <center><img class="size-full" src="http://mysite.com/wp-content/uploads/0001start-cover.jpg" alt="Video films" /> avi | 0:15:44 | 640x480 | 120Mb <!--more--> <categories>terminator (fantastika)</categories> <tags>tag1, tag2, tag3</tags> <img class="size-full" src="http://mysite.com/wp-content/uploads/0001start-tumble.jpg" alt="Video films" /> <blockquote><a href="http://k2s.cc/file/dd5ddk87609aa8c40/0001start.wmv" target="_blank">Video films</a></blockquote></center> ------------------------------------------------------------ <subject>Boevik</subject> <center><img class="size-full" src="http://mysite.com/wp-content/uploads/0002start-cover.jpg" alt="Boevik" /> avi | 0:35:44 | 640x480 | 120Mb <!--more--> <categories>Comedi 1987</categories> <tags>tag1, tag2, tag3</tags> <img class="size-full" src="http://mysite.com/wp-content/uploads/0002start-tumble.jpg" alt="Boevik" /> <blockquote><a href="http://k2s.cc/file/dd5ddkuiyi559aa8c40/0002start.wmv" target="_blank">Boevik</a></blockquote></center> ------------------------------------------------------------ <subject>Serial nash</subject> <center><img class="size-full" src="http://mysite.com/wp-content/uploads/0003start-cover.jpg" alt="Serial nash" /> wmv | 0:41:48 | 640x480 | 120Mb <!--more--> <categories>terminator (fantastika)</categories> <tags>tag1, tag2, tag3</tags> <img class="size-full" src="http://mysite.com/wp-content/uploads/0003start-tumble.jpg" alt="Serial nash" /> <blockquote><a href="http://k2s.cc/file/dd5ddkdfgf59aa8c40/0003start.wmv" target="_blank">Serial nash</a></blockquote></center> ------------------------------------------------------------ Пример: исходный файл дан выше. В файле скрипта я указываю фразы и пути к текстовым файлам. После выполнения скрипта, в текстовых файлах должен добавиться текст: fantastika.txt <subject>Video films</subject> <center><img class="size-full" src="http://mysite.com/wp-content/uploads/0001start-cover.jpg" alt="Video films" /> avi | 0:15:44 | 640x480 | 120Mb <!--more--> <categories>terminator (fantastika)</categories> <tags>tag1, tag2, tag3</tags> <img class="size-full" src="http://mysite.com/wp-content/uploads/0001start-tumble.jpg" alt="Video films" /> <blockquote><a href="http://k2s.cc/file/dd5ddk87609aa8c40/0001start.wmv" target="_blank">Video films</a></blockquote></center> ------------------------------------------------------------ <subject>Serial nash</subject> <center><img class="size-full" src="http://mysite.com/wp-content/uploads/0003start-cover.jpg" alt="Serial nash" /> wmv | 0:41:48 | 640x480 | 120Mb <!--more--> <categories>terminator (fantastika)</categories> <tags>tag1, tag2, tag3</tags> <img class="size-full" src="http://mysite.com/wp-content/uploads/0003start-tumble.jpg" alt="Serial nash" /> <blockquote><a href="http://k2s.cc/file/dd5ddkdfgf59aa8c40/0003start.wmv" target="_blank">Serial nash</a></blockquote></center> ------------------------------------------------------------ <subject>Boevik</subject> <center><img class="size-full" src="http://mysite.com/wp-content/uploads/0002start-cover.jpg" alt="Boevik" /> avi | 0:35:44 | 640x480 | 120Mb <!--more--> <categories>Comedi 1987</categories> <tags>tag1, tag2, tag3</tags> <img class="size-full" src="http://mysite.com/wp-content/uploads/0002start-tumble.jpg" alt="Boevik" /> <blockquote><a href="http://k2s.cc/file/dd5ddkuiyi559aa8c40/0002start.wmv" target="_blank">Boevik</a></blockquote></center> Если фраза не нашлась, то ничего добавлять не нужно. Один и тот же блок точно не будет содержать более одной указанной фразы. ![]() |
|
Отправлено: 13:30, 18-02-2016 |
Забанен Сообщения: 793
|
AlexanderSh88, зачем прыгать с форума на форум? Тем паче, что у Вас возникают сложности с запуском сценариев PowerShell. Простите за резкость, но Вы бы для начала разобрались с последним, да и неплохо было бы Вам самостоятельно что-то начать делать. Ваша же задача решается примерно так же, как и задача с блоками. Например:
param( [Parameter(Mandatory=$true, Position=0)] [ValidateScript({Test-Path $_})] [String]$InputFile, [Parameter(Mandatory=$true, Position=1)] [ValidateNotNullOrEmpty()] [String]$Pattern, [Parameter(Mandatory=$true, Position=2)] [String]$OutputFile ) $InputFile = Convert-Path $InputFile $Pattern = $Pattern.Replace('(', '\(').Replace(')', '\)') $getBlocks = {param([Int32]$context) Select-String $InputFile -Pattern "^" | Where-Object {$_.LineNumber -gt ($context - 5) -and $_.LineNumber -le ($context + 4)} | Select-Object Line -ExpandProperty Line } $(if (($$ = Select-String $InputFile -Pattern $Pattern -CaseSensitive | Select-Object LineNumber -ExpandProperty LineNumber) -is [Array]) { $$ | ForEach-Object { &$getBlocks $_ } } elseif ($$ -ne $null) { &$getBlocks $$ }) | Out-File $OutputFile -Encoding ASCII Или: |
Отправлено: 10:25, 19-02-2016 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 546
|
Профиль | Отправить PM | Цитировать Спасибо
Цитата greg zakharov:
![]() |
|
Отправлено: 15:03, 19-02-2016 | #3 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
CMD/BAT - [решено] скопировать n последних строк одного тхт файла и вставить их в конец другого тхт файл | Alexander_88 | Скриптовые языки администрирования Windows | 2 | 23-11-2015 16:38 | |
Любой язык - [решено] Извлечь определенные строки по счету из одного тхт файла в другой | Alexander_88 | Скриптовые языки администрирования Windows | 11 | 13-06-2015 12:48 | |
Любой язык - [решено] извлечение ссылок из одного тхт файла в другой | Alexander_88 | Скриптовые языки администрирования Windows | 4 | 05-04-2015 15:39 | |
CMD/BAT - [решено] копирование указанного количества случайных блоков текста из текстового файла | Alexander_88 | Скриптовые языки администрирования Windows | 7 | 26-08-2014 18:36 | |
Любой язык - [решено] из одного тхт файла добавить содержимое во все тхт файлы папки | gangsterovich | Скриптовые языки администрирования Windows | 3 | 06-05-2011 04:29 |
|