Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » PowerShell - Найти одинаковые ссылки в txt и переместить их по шаблону в другой txt

Ответить
Настройки темы
PowerShell - Найти одинаковые ссылки в txt и переместить их по шаблону в другой txt

Ветеран


Сообщения: 531
Благодарности: 4

Профиль | Отправить PM | Цитировать


Здравствуйте. Подскажите можно ли такую задачу на 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*;
🤔🤔🤔

Отправлено: 20:13, 23-12-2023

 

Аватара для DJ Mogarych

fascinating rhythm


Moderator


Сообщения: 6494
Благодарности: 1466

Профиль | Отправить PM | Цитировать


Код: Выделить весь код
$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

-------
Powershell 7.x | Powershell 5.1 | ffmpeg (docs)

Это сообщение посчитали полезным следующие участники:

Отправлено: 20:43, 24-12-2023 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Ветеран


Сообщения: 531
Благодарности: 4

Профиль | Отправить PM | Цитировать


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

Отправлено: 07:54, 25-12-2023 | #3


Ветеран


Сообщения: 531
Благодарности: 4

Профиль | Отправить PM | Цитировать


Здравствуйте ещё раз, можно ли доукомплектовать скрипт?:
Цитата 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*;
Слово во второй ссылке (которая справа) всегда идёт между слешами.

Отправлено: 19:42, 31-12-2023 | #4


Ветеран


Сообщения: 531
Благодарности: 4

Профиль | Отправить PM | Цитировать



Отправлено: 18:00, 28-01-2024 | #5



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » PowerShell - Найти одинаковые ссылки в txt и переместить их по шаблону в другой txt

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Любой язык - [решено] Заменить ссылки в txt файле, найдя одинаковые номера Alexander_88 Скриптовые языки администрирования Windows 13 21-12-2023 07:59
CMD/BAT - [решено] Выборка и txt по списку в txt файле cyberp1983 Скриптовые языки администрирования Windows 5 24-05-2018 20:27
CMD/BAT - [решено] Создание TXT файла для каждого файла в каталоге ISO и заполнение его по шаблону onemal Скриптовые языки администрирования Windows 23 13-05-2017 15:35
CMD/BAT - Как из строки в .txt вывести символы "которые там обновляются"в другой .txt Bombastig Скриптовые языки администрирования Windows 6 08-02-2014 04:54
CMD/BAT - [решено] Найти папкИ и переместить их по указанному пути... djvall Скриптовые языки администрирования Windows 1 02-02-2011 08:58




 
Переход