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

Alexander_88 10-05-2015 17:53 2505842

соединения ссылок с частями архива в одну строку
 
Здравствуйте, подскажите, пожалуйста, как соединить в тхт файле ссылки частей архива файла в одну строку, задав разделитель, который будет использоваться между ними. Нижняя ссылка становится рядом с верхней с правой стороны (между ними разделитель) Нужно, чтобы это происходило по следующему алгоритму...

1 - в строке ищется текст part1, если не находится, переходит к следующей ссылке и ищет в ней текст part1
2 - а если он находится, то в следующей строке ищется текст part2 (он точно должен быть найдет), и эта строка (с part2) соединяется со строкой part1
3 - далее в следующей строке ищется текст part3
4 - если найден, то ссылка прикрепляется к двум уже соединенным
5 - далее в следующей ищется part4 (и так далее), если найдена, то опять прикрепляется, а если не найдена, то не прикрепляется, а начинает с этой же строкой работать с шага 1

ну или по другому алгоритму, если вы лучше знаете :)
все соединения должны быть через разделитель, который я укажу.... пример

в блокноте ссылки:

Код:

[url=http://google.com/file/56580070a45a7/00070start_CC-120.avi]00070start_CC-120.avi[/url]
[url=http://google.com/file/e7797a7be5453/00071start_CC-133.avi]00071start_CC-133.avi[/url]
[url=http://google.com/file/09b97fd1526bd/00072start_CC-134.avi]00072start_CC-134.avi[/url]
[url=http://google.com/file/dc5db791bdd82/00073start_CEAD-035.part1.rar]00073start_CEAD-035.part1.rar[/url]
[url=http://google.com/file/5db4a247108b7/00073start_CEAD-035.part2.rar]00073start_CEAD-035.part2.rar[/url]
[url=http://google.com/file/4db5fc2111b2e/00074start_CESD-072_A.part1.rar]00074start_CESD-072_A.part1.rar[/url]
[url=http://google.com/file/82c5f05f64e37/00074start_CESD-072_A.part2.rar]00074start_CESD-072_A.part2.rar[/url]
[url=http://google.com/file/fe5970a3bfd84/00075start_CESD-072_B.part1.rar]00075start_CESD-072_B.part1.rar[/url]
[url=http://google.com/file/d207982281e5f/00075start_CESD-072_B.part2.rar]00075start_CESD-072_B.part2.rar[/url]
[url=http://google.com/file/c571750deed81/00076start_CETD-225.avi]00076start_CETD-225.avi[/url]
[url=http://google.com/file/9d84f2f9be17e/00077start_CETD-227.mkv]00077start_CETD-227.mkv[/url]

разделитель я указал такой:
Код:

|
после применения скрипта, блокнот должен иметь вид:


Код:

[url=http://google.com/file/56580070a45a7/00070start_CC-120.avi]00070start_CC-120.avi[/url]
[url=http://google.com/file/e7797a7be5453/00071start_CC-133.avi]00071start_CC-133.avi[/url]
[url=http://google.com/file/09b97fd1526bd/00072start_CC-134.avi]00072start_CC-134.avi[/url]
[url=http://google.com/file/dc5db791bdd82/00073start_CEAD-035.part1.rar]00073start_CEAD-035.part1.rar[/url] | [url=http://google.com/file/5db4a247108b7/00073start_CEAD-035.part2.rar]00073start_CEAD-035.part2.rar[/url]
[url=http://google.com/file/4db5fc2111b2e/00074start_CESD-072_A.part1.rar]00074start_CESD-072_A.part1.rar[/url] | [url=http://google.com/file/82c5f05f64e37/00074start_CESD-072_A.part2.rar]00074start_CESD-072_A.part2.rar[/url]
[url=http://google.com/file/fe5970a3bfd84/00075start_CESD-072_B.part1.rar]00075start_CESD-072_B.part1.rar[/url] | [url=http://google.com/file/d207982281e5f/00075start_CESD-072_B.part2.rar]00075start_CESD-072_B.part2.rar[/url]
[url=http://google.com/file/c571750deed81/00076start_CETD-225.avi]00076start_CETD-225.avi[/url]
[url=http://google.com/file/9d84f2f9be17e/00077start_CETD-227.mkv]00077start_CETD-227.mkv[/url]

известно, что части идут друг за другом, т.е. не может быть такого, что CESD-072_A.part1.rar в первой строке, а ее часть CESD-072_A.part2.rar в десятой... она обязательно будет следующая по счету :)

Foreigner 10-05-2015 18:19 2505848

Код:

gc 1.txt | group {

    $_ -replace '.+/(\d+start_[^\.]+)\..*','$1'

} | foreach { $_.group -join '|' } | sc 2.txt


Alexander_88 10-05-2015 19:30 2505863

спасибо, работает :)


Время: 08:38.

Время: 08:38.
© OSzone.net 2001-