У меня есть файл m3u, и я хочу удалить из него несколько строк. Я знаю, какие каналы я хотел бы сохранить из файла m3u. Этот список каналов, которые я хочу сохранить, короче, чем список каналов, которые я не хочу.Удалите несколько строк из файла M3U, который не соответствует шаблону
входного файла
#EXTM3U
#EXTINF:-1,ex-Yu: TV 1
http://channel.domain.com:9603/live/YHJKUYII/02490j4/3168.ts
#EXTINF:-1,ex-Yu: TK Tuzla
http://channel.domain.com:9603/live/YHJKUYII/02490j4/3164.ts
#EXTINF:-1,ex-Yu: SOS
http://channel.domain.com:9603/live/YHJKUYII/02490j4/3191.ts
#EXTINF:-1,NL: NPO 1
http://channel.domain.com:9603/live/YHJKUYII/02490j4/3190.ts
#EXTINF:-1,NL: NPO 2
http://channel.domain.com:9603/live/YHJKUYII/02490j4/3167.ts
#EXTINF:-1,GB: Discovery
http://channel.domain.com:9603/live/YHJKUYII/02490j4/3166.ts
#EXTINF:-1,GB: NGC
http://channel.domain.com:9603/live/YHJKUYII/02490j4/3201.ts
#EXTINF:-1,NL: NPO 3
http://channel.domain.com:9603/live/YHJKUYII/02490j4/3200.ts
#EXTINF:-1,IT: SKY Sport
http://channel.domain.com:9603/live/YHJKUYII/02490j4/3198.ts
#EXTINF:-1,ex-Yu: Pink Film
http://channel.domain.com:9603/live/YHJKUYII/02490j4/3199.ts
#EXTINF:-1,GB: Sky Sport
http://channel.domain.com:9603/live/YHJKUYII/02490j4/3172.ts
#EXTINF:-1,ex-Yu: N1 Bosna
http://channel.domain.com:9603/live/YHJKUYII/02490j4/3197.ts
#EXTINF:-1,DE: Bundesliga
http://channel.domain.com:9603/live/YHJKUYII/02490j4/3195.ts
#EXTINF:-1,ex-Yu: MTV
http://channel.domain.com:9603/live/YHJKUYII/02490j4/3170.ts
#EXTINF:-1,ex-Yu: Mini TV
http://channel.domain.com:9603/live/YHJKUYII/02490j4/3177.ts
#EXTINF:-1,ex-Yu: M1 Film
http://channel.domain.com:9603/live/YHJKUYII/02490j4/3179.ts
#EXTINF:-1,ex-Yu: Lov I Ribolov
http://channel.domain.com:9603/live/YHJKUYII/02490j4/3196.ts
#EXTINF:-1,ex-Yu: Klasik TV
http://channel.domain.com:9603/live/YHJKUYII/02490j4/3194.ts
Выше сокращенный список всех каналов. Я знаю, что я хотел бы сохранить следующие каналы:
- Все каналы, начиная с
NL:
(чувствительно к регистру) - Все каналы с
sky sport
в нем (не чувствительно к регистру) - Все каналы
DE: Bundesliga
в нем
Wanted результат
#EXTM3U
#EXTINF:-1,NL: NPO 1
http://channel.domain.com:9603/live/YHJKUYII/02490j4/3190.ts
#EXTINF:-1,NL: NPO 2
http://channel.domain.com:9603/live/YHJKUYII/02490j4/3167.ts
#EXTINF:-1,NL: NPO 3
http://channel.domain.com:9603/live/YHJKUYII/02490j4/3200.ts
#EXTINF:-1,IT: SKY Sport
http://channel.domain.com:9603/live/YHJKUYII/02490j4/3198.ts
#EXTINF:-1,GB: Sky Sport
http://channel.domain.com:9603/live/YHJKUYII/02490j4/3172.ts
#EXTINF:-1,DE: Bundesliga
http://channel.domain.com:9603/live/YHJKUYII/02490j4/3195.ts
Я не могу заставить это работать ни в sed
, awk
, ни в любом другом инструменте bash, который может выполнить эту работу. Есть идеи?
Думайте позитивно! Нет, серьезно, это сделает ваше ПО МНОГО ПОЛЬЗОВАТЕЛЕЙ проще писать и понять позже. Когда вы пишете требования, содержащие отрицательную логику ('Удалять несколько строк из файла M3U, который делает' ** не ** 'match pattern'), вы часто получаете программное обеспечение, написанное с отрицательной логикой и так трудно понять (и часто неправильно из-за непонимания [часто-двойных] отрицательных требований), так что просто возьмите секунду, чтобы увидеть, можете ли вы придумать способ написать требование в положительном ключе, например 'Выберите несколько строк из файла M3U, соответствующего шаблону '. –