首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >应该将1添加到变量中的脚本将添加2

应该将1添加到变量中的脚本将添加2
EN

Ask Ubuntu用户
提问于 2018-10-17 14:13:39
回答 2查看 164关注 0票数 0

我需要一个简单的脚本帮助,但是我得到的是2而不是1。我能得到一些帮助吗?

代码语言:javascript
复制
var=1
while read -r LINE || [ -n "$LINE" ]; do
LINE=`echo $LINE | sed -e "s/EXTINF:-1/& tvg-chno=\"$var\"/"`
echo $LINE >> emby_iptv_tmp.m3u
var=$((var + 1))

这是我得到的输出,我希望频道是1,2,3,4

代码语言:javascript
复制
#EXTM3U
#EXTINF:-1 tvg-chno="2" tvg-ID="" tvg-name="AU: Fox NRL League HD" tvg-logo="" group-title="Sports",AU: Fox NRL League HD
http://.m3u8
#EXTINF:-1 tvg-chno="4" tvg-ID="Ginx Esports CA" tvg-name="CA: Ginx Esports TV" tvg-logo="https://upload.wikimedia.org/wikipedia/commons/thumb/3/30/GINX_Esports_TV_Logo.png/200px-GINX_Esports_TV_Logo.png" group-title="General Streams",CA: Ginx Esports TV
http://.m3u8
#EXTINF:-1 tvg-chno="6" tvg-ID="Golf Channel CA" tvg-name="CA: Golf Channel UHD" tvg-logo="http://cdn.cablefax.com/wp-content/uploads/2014/06/golf-logo.jpg" group-title="Sports",CA: Golf Channel UHD
http://.m3u8

1.“工作脚本”

代码语言:javascript
复制
#!/bin/sh
: > emby_iptv.m3u
wget "Account login" -O iptv_download.m3u
var=1
while read -r LINE || [ -n "$LINE" ]; do
LINE=`echo $LINE | sed -e "s/EXTINF:-1/& tvg-chno=\"$var\"/"`
echo $LINE >> emby_iptv_tmp.m3u
var=$((var + 1))
done < iptv_download.m3u
cp emby_iptv_tmp.m3u emby_iptv.m3u
rm emby_iptv_tmp.m3u

提亚

EN

回答 2

Ask Ubuntu用户

发布于 2018-10-17 14:36:03

您可以为每一行添加1到$var,但是只有当它与EXTINF:-1匹配时才想这样做:

使用以下内容跳过不匹配的行:

代码语言:javascript
复制
while read ...; do
    [[ "$LINE" =~ EXTINF:-1 ]] || continue
    ...
    
done < iptv_download.m3u

还有一些提示:

  • 而不是cp file.tmp filerm file.tmp,您可以只运行mv file.tmp file
  • 使用$(...),而不是被认为不推荐的backticks。
票数 2
EN

Ask Ubuntu用户

发布于 2018-10-17 14:39:07

对于循环的每一次迭代,您都要递增var,因此对于文件中的每一行都是如此。如果只想对包含EXTINF:-1的每一行进行增量,则只需使用AWK处理整个文件并删除while循环:

代码语言:javascript
复制
awk '/#EXTINF:-1/ {gsub(/EXTINF:-1/, "& tvg-chno=\"" ++channel "\"")} 1' iptv_download.m3u > emby_iptv_tmp.m3u

此处的channel变量保存信道号,并在该块中每次递增,该块仅在与#EXTINF:-1匹配的行上运行。

票数 2
EN
页面原文内容由Ask Ubuntu提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://askubuntu.com/questions/1084564

复制
相关文章

相似问题

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