首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从m3u文件中删除标记

从m3u文件中删除标记
EN

Stack Overflow用户
提问于 2021-03-06 18:57:08
回答 2查看 386关注 0票数 0

我有这样的m3u列表:

代码语言:javascript
运行
复制
#EXTM3U
#EXTINF:0 tvg-id="Channel 1" tvg-name="Channel 1" tvg-logo="http://host/logo/logo1.png" timeshift="5" catchup="default" catchup-source="http://1.1.1.1/325/mono-{utc}-{lutc}.m3u8?token=secret" group-title="Group" ,13 Channel 1
http://2.2.2.2/325/video.m3u8?token=secret
#EXTINF:0 tvg-id="Channel 2" tvg-name="Channel 2" tvg-logo="http://host/logo/logo2.png" timeshift="5" catchup="default" catchup-source="http://1.1.1.1/324/mono-{utc}-{lutc}.m3u8?token=secret" group-title="Group" ,Channel 2
http://2.2.2.2/324/video.m3u8?token=secret
#EXTINF:0 tvg-id="Channel 3" tvg-name="Channel 3" tvg-logo="http://host/logo/logo3.png" timeshift="5" catchup="default" catchup-source="http://1.1.1.1/323/mono-{utc}-{lutc}.m3u8?token=secret" group-title="Group" ,Channel 3
http://2.2.2.2/323/video.m3u8?token=secret

我希望将追赶类型更改为fs并删除所有追赶源标记,因此结果应该是:

代码语言:javascript
运行
复制
#EXTM3U
#EXTINF:0 tvg-id="Channel 1" tvg-name="Channel 1" tvg-logo="http://host/logo/logo1.png" timeshift="5" catchup="fs" group-title="Group" ,13 Channel 1
http://2.2.2.2/325/video.m3u8?token=secret
#EXTINF:0 tvg-id="Channel 2" tvg-name="Channel 2" tvg-logo="http://host/logo/logo2.png" timeshift="5" catchup="fs" group-title="Group" ,Channel 2
http://2.2.2.2/324/video.m3u8?token=secret
#EXTINF:0 tvg-id="Channel 3" tvg-name="Channel 3" tvg-logo="http://host/logo/logo3.png" timeshift="5" catchup="fs" group-title="Group" ,Channel 3
http://2.2.2.2/323/video.m3u8?token=secret

在巴什怎么做?我试过了,但没有成功,你能给我指明正确的方向吗?

要删除任何特定的子字符串,我可以这样使用sed:

代码语言:javascript
运行
复制
sed '/text to remove/d' ./file

在我的例子中,要删除的字符串是不同的,在catchup="default"group-title=之间,和我发布的结果之间。

EN

Stack Overflow用户

发布于 2021-03-06 20:28:08

你已经走到一半了。

代码语言:javascript
运行
复制
sed -i.bak  -E -e 's/catchup="default" /catchup="fs" /g;s/catchup-source=[^ ]+ //g' file

使用搜索和替换部分字符串s/MATCH/REPLACEMENT/是您所需要的(而不是删除匹配的行/MATCH/d)。

因此,我们搜索catchup="default"的每一个字面出现,并用nothing //g替换它(从技术上讲,g不需要,因为应该只有一个catchup=) s/catchup="default" //g,然后对catchup-source=[^ ]+做同样的操作(catchup-source=后面是一个空格,后面是空格[^ ]+ )。好了。

我们这样做是作为一个婴儿替代-i,并告诉它创建一个备份版本的-i.bak

票数 0
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66509513

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档