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

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

Ответить
Настройки темы
Любой язык - [решено] Удаление дубликатов строк из текстового файла со сравнением по две строки

Старожил


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

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


Доброго времени суток всем.
Знаю что тема уже изъезжена, но готового решения найти не получается.
Есть плейлисты (по сути текстовые файлы), при их создании может получаться большое количество дублирующих строк.
Например:
Код: Выделить весь код
#EXTINF:0, 1+1
http://193.106.211.2:1234/udp/225.1.1.103:4001
#EXTINF:0, ICTV
http://193.106.211.2:1234/udp/225.1.1.104:4001
#EXTINF:0, 5 канал
http://193.106.211.2:1234/udp/225.1.1.105:4001
#EXTINF:0, СТБ
http://193.106.211.2:1234/udp/225.1.1.106:4001
#EXTINF:0, ТРК «Украина»
http://193.106.211.2:1234/udp/225.1.1.107:4001
#EXTINF:0, Сити
http://193.106.211.2:1234/udp/225.1.1.108:4001
#EXTINF:0, Тонис
http://193.106.211.2:1234/udp/225.1.1.111:4001
#EXTINF:0, ТЕТ
http://193.106.211.2:1234/udp/225.1.1.110:4001
#EXTINF:0, ТРК «Киев»
http://193.106.211.2:1234/udp/225.1.1.114:4001
#EXTINF:0, Тонис
http://193.106.211.2:1234/udp/225.1.1.111:4001
#EXTINF:0, Мега
http://193.106.211.2:1234/udp/225.1.1.112:4001
#EXTINF:0, М1
http://193.106.211.2:1234/udp/225.1.1.113:4001
#EXTINF:0, канал «Киев»
http://193.106.211.2:1234/udp/225.1.1.114:4001
#EXTINF:0, 2+2
http://193.106.211.2:1234/udp/225.1.1.115:4001
#EXTINF:0, ТРК «Украина»
http://190.106.210.2:1234/udp/225.1.1.107:4001
Строки обязательно должны считываться попарно: название канала - адрес потока. В примере три дубликата, в первом повторяются и название и адрес, во втором - только адрес, в третьем - только название. Из этих дублирующихся строк нужно удалить только те, где повторяются и название и адрес, то есть в примере только первую пару.
Пересмотрел кучу различных скриптов, сам пробовал батники писать, но все они считывают по одной строке и в выходном файле может получится к названию канала несколько адресов или наоборот.
К примеру такой батник:
Код: Выделить весь код
@echo off
setlocal disableDelayedExpansion
set "file=%~1"
set "line=%file%.line"
set "deduped=%file%.deduped"
::Define a variable containing a linefeed character
set LF=^


::The 2 blank lines above are critical, do not remove
>"%deduped%" (
  for /f usebackq^ eol^=^%LF%%LF%^ delims^= %%A in ("%file%") do (
    set "ln=%%A"
    setlocal enableDelayedExpansion
    >"%line%" (echo !ln:\=\\!)
    >nul findstr /xlg:"%line%" "%deduped%" || (echo !ln!)
    endlocal
  )
)
>nul move /y "%deduped%" "%file%"
2>nul del "%line%"
в выходном файле делает так:
Код: Выделить весь код
#EXTINF:-1  group-title="Познавательные",Brodilo.TV
http://brodilo.tv/channel.php
#EXTINF:-1  group-title="Познавательные",Da Vinci Learning
http://hls.peers.tv/streaming/da_vinci/16/tvrecw/playlist.m3u8|User-Agent=DuneHD/1.0.3
http://194.28.155.10:81/udp/225.0.55.26:1234
#EXTINF:-1  group-title="Прочие каналы:",112 Украина 
#EXTINF:-1  group-title="Прочие каналы:",112 Украина HD
http://112hd-hls3.cosmonova.net.ua/hls/112hd_ua_mid/index.m3u8
http://app.live.112.events/hls-ua/112hd_mid/index.m3u8
#EXTINF:-1  group-title="Прочие каналы:",112 Украина [FHD]
#EXTINF:-1  group-title="Прочие каналы:",112 Україна
#EXTINF:-1  group-title="Прочие каналы:",112 Україна HD
#EXTINF:-1  group-title="Прочие каналы:",12 Канал (Омск)
http://12channel.bonus-tv.ru:80/stream549837052987/tracks-v1a1/mono.m3u8
#EXTINF:-1  group-title="Познавательные",Discovery Channel
http://st6.allplay.uz/iptv/4/index.m3u8
#EXTINF:-1  group-title="Познавательные",Discovery Channel HD
http://st6.allplay.uz/iptv/74/index.m3u8
Это отрывок из другого плейлиста, он слишком длинный для помещения в пример.
Другие скрипты делают аналогично.
Они сравнивают по одной строке.
Может кто подскажет как реализовать сравнивание строк попарно, чтобы не нарушалась структура плейлиста ?
Премного буду благодарен за помощь.

Отправлено: 23:26, 26-06-2019

 

Старожил


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

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


Fors1k, этот код я пробовал раньше... К сожалению, он работает неправильно.
К примеру, возьмите плейлист:
Плейлист
Код: Выделить весь код
#EXTM3U
#EXTINF:-1,A1
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s45/04.m3u8
#EXTINF:-1,A2
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s33/04.m3u8
#EXTINF:-1,Fine Living
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s51/04.m3u8
#EXTINF:-1,Bridge TV
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s34/04.m3u8
#EXTINF:-1,Bridge TV Русский хит
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s78/04.m3u8
#EXTINF:-1,Fine Living
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s51/04.m3u8
#EXTINF:-1,Food Network
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s18/04.m3u8
#EXTINF:-1,MCM TOP
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s49/04.m3u8
#EXTINF:-1,Ocean TV
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s84/04.m3u8
#EXTINF:-1,RTG TV
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s80/04.m3u8
#EXTINF:-1,TV 1000
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s90/04.m3u8
#EXTINF:-1,TV 1000 Action
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s91/04.m3u8
#EXTINF:-1,Ocean TV
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s84/04.m3u8
#EXTINF:-1,TV 1000 Русское кино
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s95/04.m3u8
#EXTINF:-1,TV5 Monde Europe
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s75/04.m3u8
#EXTINF:-1,Tiji
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s59/04.m3u8
#EXTINF:-1,Viasat Explore
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s72/04.m3u8
#EXTINF:-1,Viasat History
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s70/04.m3u8
#EXTINF:-1,Viasat Nature
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s67/04.m3u8
#EXTINF:-1,Доктор
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s76/04.m3u8
#EXTINF:-1,Загородный
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s31/04.m3u8
#EXTINF:-1,Звезда
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s85/04.m3u8
#EXTINF:-1,Канал Disney
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s60/04.m3u8
#EXTINF:-1,Мама
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s77/04.m3u8
#EXTINF:-1,Мир http://zona-iptv.ru/
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s39/04.m3u8
#EXTINF:-1,Муз ТВ
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s28/04.m3u8
#EXTINF:-1,Мульт
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s58/04.m3u8
#EXTINF:-1,НСТ
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s87/04.m3u8
#EXTINF:-1,Premium1
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s83/04.m3u8
#EXTINF:-1,shanson
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s43/04.m3u8
#EXTINF:-1,ЭВРИКА
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s44/04.m3u8
#EXTINF:-1,АРМЕНИЯ ТВ5
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s46/04.m3u8
#EXTINF:-1,RTD
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s93/04.m3u8
#EXTINF:-1,ЗОО ТВ
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s92/04.m3u8
#EXTINF:-1,ЕВРОНОВОСТИ
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s89/04.m3u8
#EXTINF:-1,ДОМАШНИЙ
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s88/04.m3u8
#EXTINF:-1,SENTANA SPORT+
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s82/04.m3u8
#EXTINF:-1,SENTANA SPORT
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s81/04.m3u8
#EXTINF:-1,Euronews
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s79/04.m3u8
#EXTINF:-1,Atv
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s74/04.m3u8
#EXTINF:-1,73
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s73/04.m3u8
#EXTINF:-1,Телепутишествия
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s71/04.m3u8
#EXTINF:-1,69
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s69/04.m3u8
#EXTINF:-1,А HBO
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s64/04.m3u8
#EXTINF:-1,RTG HD
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s63/04.m3u8
#EXTINF:-1,ОХОТНИК И РЫБОЛОВ HD
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s62/04.m3u8
#EXTINF:-1,ОХОТНИК И РЫБОЛОВ
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s55/04.m3u8
#EXTINF:-1,ТВЦ
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s54/04.m3u8
#EXTINF:-1,53
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s53/04.m3u8
#EXTINF:-1,ПЯТНИЦА
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s50/04.m3u8
#EXTINF:-1,A1
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s45/03.m3u8
#EXTINF:-1,A2
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s33/03.m3u8
#EXTINF:-1,Bridge TV
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s34/03.m3u8
#EXTINF:-1,Bridge TV Русский хит
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s78/03.m3u8
#EXTINF:-1,Fine Living
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s51/03.m3u8
#EXTINF:-1,Food Network
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s18/03.m3u8
#EXTINF:-1,MCM TOP
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s49/03.m3u8
#EXTINF:-1,Ocean TV
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s84/03.m3u8
#EXTINF:-1,RTG TV
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s80/03.m3u8
#EXTINF:-1,TV 1000
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s90/03.m3u8
#EXTINF:-1,TV 1000 Action
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s91/03.m3u8
#EXTINF:-1,TV 1000 Русское кино
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s95/03.m3u8
#EXTINF:-1,TV5 Monde Europe
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s75/03.m3u8
#EXTINF:-1,Tiji
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s59/03.m3u8
#EXTINF:-1,Viasat Explore
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s72/03.m3u8
#EXTINF:-1,Viasat History
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s70/03.m3u8
#EXTINF:-1,Viasat Nature
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s67/03.m3u8
#EXTINF:-1,Доктор
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s76/03.m3u8
#EXTINF:-1,Загородный
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s31/03.m3u8
#EXTINF:-1,Звезда
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s85/03.m3u8
#EXTINF:-1,Канал Disney
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s60/03.m3u8
#EXTINF:-1,Мама
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s77/03.m3u8
#EXTINF:-1,Мир
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s39/03.m3u8
#EXTINF:-1,Муз ТВ
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s28/03.m3u8
#EXTINF:-1,Мульт
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s58/03.m3u8
#EXTINF:-1,НСТ
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s87/03.m3u8
#EXTINF:-1,Наука
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s98/03.m3u8
#EXTINF:-1,Россия 24
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s21/03.m3u8
#EXTINF:-1,Русский Бестселлер
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s52/03.m3u8
#EXTINF:-1,Русский Экстрим
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s47/03.m3u8
#EXTINF:-1,Рыжий
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s57/03.m3u8
#EXTINF:-1,Сарафан
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s38/03.m3u8
#EXTINF:-1,ТНТ4 http://zona-iptv.ru/
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s100/03.m3u8
#EXTINF:-1,Телекафе
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s56/03.m3u8
#EXTINF:-1,Техно 24
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s68/03.m3u8
#EXTINF:-1,VIP COMEDY
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s97/03.m3u8
#EXTINF:-1,ПРИКЛЮЧЕНИЯ HD
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s99/03.m3u8
#EXTINF:-1,Cineman
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s66/03.m3u8
#EXTINF:-1,Filmzone ATV
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s48/03.m3u8
#EXTINF:-1,Kinoman ATV
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s94/03.m3u8
#EXTINF:-1,Premium1
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s83/03.m3u8
#EXTINF:-1,shanson
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s43/03.m3u8
#EXTINF:-1,ЭВРИКА
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s44/03.m3u8
#EXTINF:-1,АРМЕНИЯ ТВ5
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s46/03.m3u8
#EXTINF:-1,RTD
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s93/03.m3u8
#EXTINF:-1,ЗОО ТВ
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s92/03.m3u8
#EXTINF:-1,ЕВРОНОВОСТИ
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s89/03.m3u8
#EXTINF:-1,ДОМАШНИЙ
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s88/03.m3u8
#EXTINF:-1,SENTANA SPORT
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s82/03.m3u8
#EXTINF:-1,SENTANA SPORT
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s81/03.m3u8
#EXTINF:-1,Euronews
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s79/03.m3u8
#EXTINF:-1,Atv
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s74/03.m3u8
#EXTINF:-1,73
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s73/03.m3u8
#EXTINF:-1,Телепутишествия
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s71/03.m3u8
#EXTINF:-1,69
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s69/03.m3u8
#EXTINF:-1,А HBO
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s64/03.m3u8
#EXTINF:-1,RTG HD
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s63/03.m3u8
#EXTINF:-1,ОХОТНИК И РЫБОЛОВ HD
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s62/03.m3u8
#EXTINF:-1,ОХОТНИК И РЫБОЛОВ
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s55/03.m3u8
#EXTINF:-1,ТВЦ
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s54/03.m3u8
#EXTINF:-1,53
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s53/03.m3u8
#EXTINF:-1,ПЯТНИЦА
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s50/03.m3u8
#EXTINF:-1,A1
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s45/01.m3u8
#EXTINF:-1,A2
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s33/01.m3u8
#EXTINF:-1,Bridge TV
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s34/01.m3u8
#EXTINF:-1,Bridge TV Русский хит
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s78/01.m3u8
#EXTINF:-1,Fine Living
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s51/01.m3u8
#EXTINF:-1,Food Network
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s18/01.m3u8
#EXTINF:-1,MCM TOP
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s49/01.m3u8
#EXTINF:-1,Ocean TV
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s84/01.m3u8
#EXTINF:-1,RTG TV
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s80/01.m3u8
#EXTINF:-1,TV 1000
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s90/01.m3u8
#EXTINF:-1,TV 1000 Action
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s91/01.m3u8
#EXTINF:-1,Звезда
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s85/01.m3u8

В нём несколько вхождений каналов с одинаковыми именами, но с разными ссылками (к примеру - #EXTINF:-1,A1). Они должны все остаться в листе, но Ваш код оставляет только одно вхождение.
К тому же удаляются нужные строки с директивой #EXTVLCOPT.

Отправлено: 15:17, 16-08-2020 | #51



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

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


Аватара для Fors1k

Старожил


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

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


Цитата Uragan66:
В нём несколько вхождений каналов с одинаковыми именами, но с разными ссылками »
Yus_2 говорил, что нужно проверять уникальность только имен. Теперь выясняется, что нужно проверять уникальность ссылок(как я изначально и делал).
Цитата Uragan66:
К тому же удаляются нужные строки с директивой #EXTVLCOPT. »
Ранее говорилось, что нужно сделать так, что бы в плейлисте остались только пары вида
#EXTINF:-1,Bridge TV
http://ott-cdn.ucom.am/s33/04.m3u8

Покажите как должен в итоге выглядеть этот пример.

Похоже, все-таки нужо оставить мне эту затею, так как каждый раз условия конечного результата разные

Отправлено: 15:37, 16-08-2020 | #52


Ветеран


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

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


Попробуйте так, особо не тестировал, но вроде сортирует
Код: Выделить весь код
[hashtable[]] $channels =
    Get-Content list.txt | Select-String '#EXTINF:.+' -Context 2 |
        ForEach-Object { @{ Channel = $_.Matches.Value; Context = $_.Context.PostContext }}

$(
'#EXTM3U'
$channels | Sort-Object { $_.Channel } | ForEach-Object { $_.Channel; $_.Context }

) | Set-Content sorted_list.txt
Это сообщение посчитали полезным следующие участники:

Отправлено: 16:08, 16-08-2020 | #53


Старожил


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

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


Цитата Fors1k:
Покажите как должен в итоге выглядеть этот пример »
Fors1k, листов в сети множество и все по-разному составлены. Если плейлист от провайдера или толкового рестримера, то в нём практически и не нужно удалять дубликаты. А если это плейлист от юзеров, среди которых попадаются и совсем "криворукие", то в нём может быть всё что угодно (в разумных пределах конечно).
К примеру может быть такой плейлист:
in_list
Код: Выделить весь код
#EXTM3U
#EXTINF:-1,A1
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s45/04.m3u8
#EXTINF:-1,A2
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s33/04.m3u8
#EXTINF:-1,Новий канал
#EXTGRP:Украина
http://iptv.prosto.tv:7000/ch6/video.m3u8?secret=co9yg1i4
#EXTINF:-1,A1
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s45/01.m3u8
#EXTINF:0,Первый канал
http://gorod.tv/s/live/1/46.173.58.40/1544264103816/0.m3u8
#EXTINF:0,Россия 1 HD
https://meta.vcdn.biz/30560520b9dacb6e03aae2bc57bd8d78_megogo/vod/fs/o/41139221/u_sid/0/u_uid/0/u_vod/0/u_device/cms_html5/u_srvc/28561/type.live/playlist.m3u8
#EXTINF:0,5-тый канал
https://meta.vcdn.biz/bd7779421f9ce7a23453cb0fb05987a9_megogo/vod/fs/o/36429601/u_sid/0/u_uid/0/u_vod/0/u_device/cms_html5/u_srvc/28561/type.live/playlist.m3u8
#EXTINF:0,Первый
http://gorod.tv/s/live/1/46.173.58.40/1544264103816/0.m3u8
#EXTINF:0 group-title="Русские" tvg-id="zvezda" tvg-logo="https://pbs.twimg.com/media/DxnzMctXcAEPuMv.png",Звезда
https://meta.vcdn.biz/a90e6e1d617148ec8b087bae57dd3338_megogo/vod/fs/o/36429631/u_sid/0/u_uid/0/u_vod/0/u_device/cms_html5/u_srvc/28561/type.live/playlist.m3u8
#EXTINF:2.97077,Кинозал 2
http://cooltv.dyndns.tv:8200/udp/239.255.4.30:1234
#EXTINF:-1,СТБ
#EXTGRP:Украина
http://iptv.prosto.tv:7000/ch8/video.m3u8?secret=co9yg1i4
#EXTINF:1.87832,Кинозал 3
http://cooltv.dyndns.tv:8200/udp/239.255.4.31:1234
#EXTINF:0 group-title="Русские" tvg-id="rossia1" tvg-logo="https://pbs.twimg.com/media/DxnvslfWsAE6Sys.png",Россия 1 HD
https://meta.vcdn.biz/ret9421f9ce7a23453cb0fb05987a9_megogo/vod/fs/o/36429601/u_sid/0/u_uid/0/u_vod/0/u_device/cms_html5/u_srvc/28561/type.live/playlist.m3u8
#EXTINF:-1,СТБ
#EXTGRP:Украина
http://iptv.prosto.tv:7000/ch5/video.m3u8?secret=co9yg1i4
#EXTINF:-1,Новий канал
#EXTGRP:Украина
http://iptv.prosto.tv:7000/ch6/video.m3u8?secret=co9yg1i4
#EXTINF:0,Первый канал
http://gorod.tv/s/live/1/46.173.58.40/1544264103816/0.m3u8
#EXTINF:-1, 5 канал
#EXTGRP:Украина
http://iptv.prosto.tv:7000/ch7/video.m3u8?secret=co9yg1i4

В идеале на выходе должны получить:
out_list
Код: Выделить весь код
#EXTM3U
#EXTINF:0,5-тый канал
https://meta.vcdn.biz/bd7779421f9ce7a23453cb0fb05987a9_megogo/vod/fs/o/36429601/u_sid/0/u_uid/0/u_vod/0/u_device/cms_html5/u_srvc/28561/type.live/playlist.m3u8
#EXTINF:-1, 5 канал
#EXTGRP:Украина
http://iptv.prosto.tv:7000/ch7/video.m3u8?secret=co9yg1i4
#EXTINF:-1,A1
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s45/01.m3u8
#EXTINF:-1,A1
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s45/04.m3u8
#EXTINF:-1,A2
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s33/04.m3u8
#EXTINF:0 group-title="Русские" tvg-id="zvezda" tvg-logo="https://pbs.twimg.com/media/DxnzMctXcAEPuMv.png",Звезда
https://meta.vcdn.biz/a90e6e1d617148ec8b087bae57dd3338_megogo/vod/fs/o/36429631/u_sid/0/u_uid/0/u_vod/0/u_device/cms_html5/u_srvc/28561/type.live/playlist.m3u8
#EXTINF:2.97077,Кинозал 2
http://cooltv.dyndns.tv:8200/udp/239.255.4.30:1234
#EXTINF:1.87832,Кинозал 3
http://cooltv.dyndns.tv:8200/udp/239.255.4.31:1234
#EXTINF:-1,Новий канал
#EXTGRP:Украина
http://iptv.prosto.tv:7000/ch6/video.m3u8?secret=co9yg1i4
#EXTINF:0,Первый канал
http://gorod.tv/s/live/1/46.173.58.40/1544264103816/0.m3u8
#EXTINF:0,Россия 1 HD
https://meta.vcdn.biz/30560520b9dacb6e03aae2bc57bd8d78_megogo/vod/fs/o/41139221/u_sid/0/u_uid/0/u_vod/0/u_device/cms_html5/u_srvc/28561/type.live/playlist.m3u8
#EXTINF:0 group-title="Русские" tvg-id="rossia1" tvg-logo="https://pbs.twimg.com/media/DxnvslfWsAE6Sys.png",Россия 1 HD
https://meta.vcdn.biz/ret9421f9ce7a23453cb0fb05987a9_megogo/vod/fs/o/36429601/u_sid/0/u_uid/0/u_vod/0/u_device/cms_html5/u_srvc/28561/type.live/playlist.m3u8
#EXTINF:-1,СТБ
#EXTGRP:Украина
http://iptv.prosto.tv:7000/ch5/video.m3u8?secret=co9yg1i4
#EXTINF:-1,СТБ
#EXTGRP:Украина
http://iptv.prosto.tv:7000/ch8/video.m3u8?secret=co9yg1i4

то есть должны удалиться дубликаты и по именам каналов и по ссылкам на потоки, но при этом структура плейлиста не должна быть нарушена и должны сохраниться директивы #EXTGRP и #EXTVLCOPT

Foreigner, к сожалению Ваш код тоже путает строки.
Ну да ладно... Пока дорабатываю старый рабочий код, просто почитал новые посты в теме и пришла мысль добавить ещё и алфавитную сортировку по имени канала...

Отправлено: 16:45, 16-08-2020 | #54


Аватара для YuS_2

Crazy


Contributor


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

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


Цитата Fors1k:
Yus_2 говорил, что нужно проверять уникальность только имен. »
Эмм, где это я такое говорил?

Цитата Fors1k:
Теперь выясняется, что нужно проверять уникальность ссылок(как я изначально и делал). »
Цитата Fors1k:
Ранее говорилось, что нужно сделать так, что бы в плейлисте остались только пары вида »
Ранее я говорил это:
Цитата YuS_2:
Создание скрипта, правильно решающего задачу, зависит от правильного составления условий той задачи... »
и это немаловажно... кстати, там ещё была речь не только об ошибках составителей плейлистов...
А поскольку пока были условия в задаче проверять таки только ПАРЫ строк, то и уникальность проверяться должна именно ПАР строк, а сортировка пар по имени канала, либо по ссылке - здесь вторично.

Цитата Fors1k:
Похоже, все-таки нужо оставить мне эту затею, так как каждый раз условия конечного результата разные »
А я ведь говорил, что для решения задачи необходимо получить полные условия... ну, или самому окунуться в тему, чтобы понять нюансы. Но если в теме нет надобности, то окунаться в неё - вопрос только желания и свободного времени.

Цитата Uragan66:
Но как сделать сортировку по имени канала, если в строке перед названием канала есть дополнительные директивы »
Это не проблема, вопрос совсем в другом...
Как и писал выше, необходимы ПОЛНЫЕ условия задачи... а вот это:
Цитата Uragan66:
К тому же удаляются нужные строки с директивой #EXTVLCOPT. »
Цитата Uragan66:
и должны сохраниться директивы #EXTGRP и #EXTVLCOPT »
- противоречит изначальным условиям задачи, что проверяться должны пары строк... это уже будут не пары, а переменная величина количества проверяемых строк, с неопределенным (пока) массивом строк на выходе, т.е. нет в условиях того, какие строки необходимо сохранять, какие перемещать в строку с тегом #EXTINF, а какие удалять...
Например тег:
Цитата Uragan66:
#EXTVLCOPT »
понимает, если не ошибаюсь, только VLC плеер... нужен ли он в плейлистах?
а это:
Цитата Uragan66:
#EXTGRP »
- всего лишь группы, по которым компонуются каналы... опять же, такой тег не все плееры понимают, а некоторые и на дух не переносят, т.е. надо не сохранять, а удалять...
Кроме того, этот тег в более универсальном виде, лучше переместить таки в строку #EXTINF...
В общем:
Цитата YuS_2:
это уже другая задача, под которую необходимо составить перечень условий, т.е. вычленить все возможные "лишние" теги, которые надо либо удалить, либо просто добавить в строку, например (#EXTINF:-1 group-title="Общие",Евроновости)»
Цитата YuS_2:
и чтобы получить в итоге то, что хотелось бы, придется немного потрудиться и составить таки условия... »
Цитата YuS_2:
а здесь Вам могут помочь решить задачу с определенными условиями, но не заниматься экстрасенсорикой в плане того, какие там ещё могут быть подводные течения в тех плейлистах... так что сорри, если что не так. »

-------
scio me nihil scire. Ѫ

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

Отправлено: 22:33, 18-08-2020 | #55



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Любой язык - Удаление из txt файлов не нужных строк и дубликатов строк. voler Скриптовые языки администрирования Windows 1 26-02-2018 14:10
Delphi - Обработчик строк из текстового файла pageYK@fb Программирование и базы данных 18 11-08-2016 13:40
CMD/BAT - [решено] Удаление строки из текстового файла Elven Скриптовые языки администрирования Windows 2 29-11-2013 17:44
CMD/BAT - Поиск и копирование нескольких строк из текстового файла. valen Скриптовые языки администрирования Windows 0 07-11-2011 17:27
CMD/BAT - [решено] Перенос и удаление строк из текстового файла sk8ter Скриптовые языки администрирования Windows 15 03-10-2010 19:35




 
Переход