Войти

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


Alexander_88
11-10-2015, 11:38
Здравствуйте, подскажите пожалуйста как можно заменить ссылки в одном txt файле на ссылки в другом txt файле, критерий по которому скрипт должен найти какую ссылку на какую заменить - имя файла в конце ссылки, а также я указываю домен какой на какой заменить. Если идти сверху вниз, то ссылки идут по порядку и их количество совпадает, результат нужно вывести в третий тхт файл. В тхт файле (где нужно заменить ссылки) также есть другой текст..

пример:

в old.txt ссылки, которые нужно заменить. (домен выделен жирным, а также конец ссылки, который совпадает)

jdshjfhsdkjf
http://ist3-***terminator-001.jpg

File Name : terminator-001.mp4
Genres: Bodybuilding, Posing, Sex Toys
Format: mp4
Duration: 00:02:34
Filesize: 331 MB
Video: MPEG-4 ghjghj20, 29.000 fps, 3499 Kbps
Audio: AAfghfghfgannels, 64.2 Kbps
http://ist3-****FileJoker-1.png
http://filejoker.net/n2b1xu907gzx/terminator-001.mp4

//==================
tyutyutyu
http://ist3-***terminator-002.jpg

File Name : terminator-002.mp4
Genres: dfghfghfghfdgf
Format: mp4
Duration: 00:45:10
Filesize: 22 MB
Video: AVC, 1erter000 fps, 3500 Kbps
Audio: AAC LC, 44.1 rtytrynnels, 125 Kbps
http://ist3-***FileJoker-1.png
http://filejoker.net/kbwejujrwejz/terminator-002.mp4


в new.txt ссылки, на которые нужно заменить (в столбик)


http://www.datafile.com/d/T1RNgfhjuNUT0F9/terminator-001.mp4
http://www.datafile.com/d/T1RNgfhjuNUT0F9/terminator-002.mp4

Результат должен получиться:

jdshjfhsdkjf
http://ist3-***terminator-001.jpg

File Name : terminator-001.mp4
Genres: Bodybuilding, Posing, Sex Toys
Format: mp4
Duration: 00:02:34
Filesize: 331 MB
Video: MPEG-4 ghjghj20, 29.000 fps, 3499 Kbps
Audio: AAfghfghfgannels, 64.2 Kbps
http://ist3-****FileJoker-1.png
http://www.datafile.com/d/T1RNgfhjuNUT0F9/terminator-001.mp4

//==================
tyutyutyu
http://ist3-***terminator-002.jpg

File Name : terminator-002.mp4
Genres: dfghfghfghfdgf
Format: mp4
Duration: 00:45:10
Filesize: 22 MB
Video: AVC, 1erter000 fps, 3500 Kbps
Audio: AAC LC, 44.1 rtytrynnels, 125 Kbps
http://ist3-***FileJoker-1.png
http://www.datafile.com/d/T1RNgfhjuNUT0F9/terminator-002.mp4

Foreigner
11-10-2015, 12:22
Я правильно понял, что надо везде заменить

"filejoker.net/......"
на
"www.datafile.com/d/T1RNgfhjuNUT0F9"

или надо ориентироваться только по названию файла и брать соответствующий этому названию сетевой адрес из файла new.txt?

$old = get-content old.txt
$urls = [uri[]](get-content new.txt)

foreach ($url in $urls) {
$old = $old -replace ".+$($url.segments[-1])",$url
# $old = $old -replace ".+$($url.segments[$url.segments.count-1])",$url # если старая версия
}

$old | set-content old1.txt

Alexander_88
11-10-2015, 12:43
Я правильно понял, что надо везде заменить
"filejoker.net/......"
на
"www.datafile.com/d/T1RNgfhjuNUT0F9"
или надо ориентироваться только по названию файла и брать соответствующий этому названию сетевой адрес из файла new.txt? »

заменить везде.
заменить необходимо полностью ссылку... те ссылки, которые нужно заменить начинаются на http://filejoker.net/
а заканчиваются именем файла + расширение
те ссылки, на которые нужно менять начинаются на http://www.datafile.com/ и заканчиваются на имя файла + расширение.
если имя файла + расширение совпадает, то нужно проводить замену полностью всей ссылки целиком.

нужны именно ссылки, к сожалению после применения скрипта заменилась еще одна строка, которая выделена жирным.

jdshjfhsdkjf
http://ist3-***terminator-001.jpg

File Name : terminator-001.mp4
Genres: Bodybuilding, Posing, Sex Toys
Format: mp4
Duration: 00:02:34
Filesize: 331 MB
Video: MPEG-4 ghjghj20, 29.000 fps, 3499 Kbps
Audio: AAfghfghfgannels, 64.2 Kbps
http://ist3-****FileJoker-1.png
http://www.datafile.com/d/T1RNgfhjuNUT0F9/terminator-001.mp4

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

Foreigner
11-10-2015, 13:19
к сожалению после применения скрипта заменилась еще одна строка, которая выделена жирным. »

Добавьте в слеш:

$old = $old -replace ".+/$($url.segments[-1])",$url

Alexander_88
11-10-2015, 16:46
спасибо, работает :)




© OSzone.net 2001-2012