Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   Найти одинаковые ссылки в txt и переместить их по шаблону в другой txt (http://forum.oszone.net/showthread.php?t=354713)

Alexander_88 23-12-2023 20:13 3021874

Найти одинаковые ссылки в txt и переместить их по шаблону в другой txt
 
Здравствуйте. Подскажите можно ли такую задачу на powershell решить?..
Есть txt файл, в нем в каждой строке по две ссылки, разделенные знаком |
Нужен скрипт, который найдет одинаковые пары ссылок, и запишет их имена файлов без расширения, по специальному шаблону в другой txt файл.., а в исходном файле, строчки с этими парами одинаковых ссылок удалит.. остальное оставить без изменения..
Шаблон:
Код:

Имя файла без расширения*;
Пример. Исходный файл 1.txt

1.txt
Код:

https://k2s.cc/file/fd35e536991e/0055update.mp4 | https://k2s.cc/file/fd35e536991e/0055update.mp4
https://k2s.cc/file/e107e67247510/mod0047.mp4 | https://k2s.cc/file/wwiue107e810/mod0047.mp4
https://google.com/file/201758865_l9hs3/0050start_t.jpg | https://google.com/file/2017465f65_l9gkl3/0050start_t.jpg
https://k2s.cc/file/fd68536991e/0659upd.mp4 | https://k2s.cc/file/fd68536991e/0659upd.mp4
https://k2s.cc/file/e107e68807510/m0078.mp4 | https://k2s.cc/file/yc07e68ytro810/m0078.mp4
https://google.com/file/264758865_l9hs3/0050yyc_t.jpg | https://google.com/file/264758865_l9hs3/0050yyc_t.jpgl

После применения скрипта, файл 1.txt должен стать таким:

1.txt
Код:

https://k2s.cc/file/e107e67247510/mod0047.mp4 | https://k2s.cc/file/wwiue107e810/mod0047.mp4
https://google.com/file/201758865_l9hs3/0050start_t.jpg | https://google.com/file/2017465f65_l9gkl3/0050start_t.jpg
https://k2s.cc/file/e107e68807510/m0078.mp4 | https://k2s.cc/file/yc07e68ytro810/m0078.mp4

А также должен появиться ещё один txt файл, с именами файлов ссылок по шаблону:

2.txt
Код:

0055update*;0659upd*;0050yyc_t*;
🤔🤔🤔

DJ Mogarych 24-12-2023 20:43 3021882

Код:

$file = "C:\temp\1.txt"
$names = "C:\temp\2.txt"

$equals = [System.Collections.ArrayList]::new()
$notEquals = [System.Collections.ArrayList]::new()
[io.file]::readalllines("$file") |% {
    if (($str = $_.split(' | ') -match '\w' |group {$_ -replace '\.\w+$'})[0].Count -eq 1) {
        $notEquals.add($_) > $null
    }
    else {
        $equals.add($($str.name -replace '.*/' -replace '$','*')) > $null       
    }
}

$notEquals |Out-File $file -Encoding default
$equals -join ';' |Out-File $names -Encoding default


Alexander_88 25-12-2023 07:54 3021892

DJ Mogarych, Спасибо большое, все четко работает без вопросов :up

Alexander_88 31-12-2023 19:42 3022120

Здравствуйте ещё раз, можно ли доукомплектовать скрипт?:
Цитата:

Цитата Alexander_88
Нужен скрипт, который найдет одинаковые пары ссылок, и запишет их имена файлов без расширения, по специальному шаблону в другой txt файл.., а в исходном файле, строчки с этими парами одинаковых ссылок удалит.. »

Появилась временная необходимость, добавлять имена файлов к шаблону не только, если одинаковая пара ссылок, но также, если в какой то паре ссылок, правая ссылка имеет определенный тест (к примеру пусть это будет deletelink).. я его буду менять по необходимости..
Если это возможно, подскажите, что нужно добавить в скрипт для этого?
Пс, не знал нужно ли новую тему создавать, если нужно дополнение к скрипту 🤔

Пример:
1.txt
Код:

https://k2s.cc/file/fd35e536991e/0055update.mp4 | https://k2s.cc/file/fd35e536991e/0055update.mp4
https://k2s.cc/file/e107e67247510/mod0047.mp4 | https://k2s.cc/file/wwiue107e810/mod0047.mp4
https://google.com/file/201758865_l9hs3/0050start_t.jpg | https://google.com/file/2017465f65_l9gkl3/0050start_t.jpg
https://k2s.cc/file/fd68536991e/0659upd.mp4 | https://k2s.cc/file/fd68536991e/0659upd.mp4
https://k2s.cc/file/e107e68807510/m0078.mp4 | https://k2s.cc/file/deletelink/m0078.mp4
https://google.com/file/264758865_l9hs3/0050yyc_t.jpg | https://google.com/file/264758865_l9hs3/0050yyc_t.jpg

Слово зададим deletelink
После применения скрипта, такой результат:

1.txt
Код:

https://k2s.cc/file/e107e67247510/mod0047.mp4 | https://k2s.cc/file/wwiue107e810/mod0047.mp4
https://google.com/file/201758865_l9hs3/0050start_t.jpg | https://google.com/file/2017465f65_l9gkl3/0050start_t.jpg

2.txt
Код:

0055update*;0659upd*;m0078*;0050yyc_t*;
Слово во второй ссылке (которая справа) всегда идёт между слешами.

Alexander_88 28-01-2024 18:00 3023355

:flag:


Время: 23:58.

Время: 23:58.
© OSzone.net 2001-