我有一个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
在它想要的结果
#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的工具,它可以做的工作。有任何想法吗?
您可以使用以下命令:
sed -n -r -e '/EXTM3U/p' -e '/NL:|DE: Bundesliga/,+1p' -e '/sky sport/I,+1p'
对于每个匹配的模式,它将打印当前行和下一行。
-n
禁止自动打印图案,-r
使用扩展的正则表达式,并-e
允许在同一命令上添加多个sed脚本。
/EXTM3U/p
最简单:它匹配包含的行EXTM3U
并打印它们(p
)
对于'/NL:|DE: Bundesliga/,+1p'
,它匹配包含NL:
或的行DE: Bundesliga
,并打印它(p
)以及下一行(+1
)
对于/sky sport/I
,I
进行不区分大小写的匹配。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句