2016-01-26 55 views
0

我想处理mpv的YouTube播放列表,我正在使用它的bash脚本。Bash条件匹配并将通配符保存到变量

if [[ "$QUTE_URL" == *"$ytstring"*"&index="*"&list="* ]]; then 

现在我想匹配的通配符&index=被回显/保存到变量进行进一步处理。

我该怎么做?

一种$ QUTE_URL样本:

https://www.youtube.com/watch?v=x-xLDTN0s_I&index= &列表= PLlSUA5AyYAoeDPCjR6weNeiXXJitl4dlc

我想3在这种情况下,交出至YouTube,下载,以便它知道从哪里开始播放列表。嗯,也许我需要的名单也输出应该看起来像MPV -ytdl-RAW选项=播放列表启动= -ytdl https://www.youtube.com/playlist?list=PL1bauNEiHIgyHtNfI-eIZDUfkNlz_TL2Z

+0

什么是'QUTE_URL'的样本值和您想要保存在变量中的部分? – anubhava

回答

4

要匹配的正则表达式:

url='https://www.youtube.com/watch?v=x-xLDTN0s_I&index=3&list=PLlSUA5AyYAoeDPCjR6weNeiXXJitl4dlc' 
if [[ $url =~ \&index=([0-9]*)\& ]]; then 
    echo "${BASH_REMATCH[1]}" 
fi 

输出:

 
3 

man bash来自:

索引为0的BASH_REMATCH元素是匹配整个正则表达式的字符串部分。具有索引n的 BASH_REMATCH的元素是匹配第n个加括号的子表达式的字符串部分。