|
Компьютерный форум 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> ------------------------------------------------------------ Пусть конечная фраза 0002start после выполнения скрипта должен появиться файл posts2.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> ------------------------------------------------------------ Блоков много. Одна и та же фраза (хоть начальная, хоть конечная) точно не будет находиться в двух блоках одновременно. ![]() |
|
Отправлено: 13:57, 18-02-2016 |
Забанен Сообщения: 793
|
А какой смысл писать что-то вроде "000Xstart"? Если следовать логике регулярных выражений достаточно указать числа для шаблона подобного "[X|Y]start", относительно чего в свою очередь ищем индексы строк, из которых составляется диапазон блока. Иными словами, если наш текст:
<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> ------------------------------------------------------------ param( [Parameter(Mandatory=$true, Position=0)] [ValidateScript({Test-Path $_})] [String]$FileName, [Parameter(Mandatory=$false)] [Int32]$Begin = 1, [Parameter(Mandatory=$true, Position=1)] [Int32]$End ) $FileName = Convert-Path $FileName if ($Begin -gt $End) { Write-Warning "index is out of range." break } $$ = Select-String $FileName -Pattern ( '[{0:D4}|{1:D4}]start.wmv' -f $Begin, $End ) | Select-Object LineNumber $top = $$[0].LineNumber - 8 $end = $$[1].LineNumber + 1 Select-String $FileName -Pattern "^" | Where-Object {$_.LineNumber -gt $top -and $_.LineNumber -le $end} | Select-Object Line -ExpandProperty Line | Out-File out.txt -Encoding ASCII Получим в папке E:\sandbox файл out.txt следующего содержания: <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> ------------------------------------------------------------ Получим: <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> ------------------------------------------------------------ |
Отправлено: 16:23, 18-02-2016 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 546
|
Профиль | Отправить PM | Цитировать Спасибо, получилось одиночно запустить файл с основным кодом и выполнить. А куда нужно второй маленький код вписывать? в отдельный файл?
Я сделал отдельный файл: 1.ps1 и запускаю его. В итоге очищается файл diapazon.ps1 (это файл с основным кодом) и все ![]() |
Отправлено: 04:56, 19-02-2016 | #3 |
Забанен Сообщения: 793
|
|
Отправлено: 09:15, 19-02-2016 | #4 |
Ветеран Сообщения: 546
|
Профиль | Отправить PM | Цитировать спасибо, наконец - то получилось, с помощью бат файла параметры передал в скрипт
![]() |
|
Отправлено: 14:59, 19-02-2016 | #5 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Любой язык - Распределение блоков текста из одного тхт файла по нескольким | Alexander_88 | Скриптовые языки администрирования Windows | 2 | 19-02-2016 15:03 | |
CMD/BAT - [решено] копирование указанного количества случайных блоков текста из текстового файла | Alexander_88 | Скриптовые языки администрирования Windows | 7 | 26-08-2014 18:36 | |
C/C++ - С :запись из одного файла в другой только часть строки | alfaw | Программирование и базы данных | 1 | 07-07-2013 23:40 | |
CMD/BAT - [решено] Помогите скопировать определённе символы с одного файла в другой. | kolkin-alexandr | Скриптовые языки администрирования Windows | 5 | 15-03-2013 15:37 | |
CMD/BAT - [решено] Как скопировать имя файла из текстового файла в код батника и т.д. | Nun-Nun | Скриптовые языки администрирования Windows | 6 | 13-05-2009 13:28 |
|