Войти

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


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

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

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

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

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

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

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


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

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

Foreigner
10-05-2015, 18:19
gc 1.txt | group {

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

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

Alexander_88
10-05-2015, 19:30
спасибо, работает :)




© OSzone.net 2001-2012