Bash条件匹配并将通配符保存到变量

时间:2016-01-26 19:47:47

标签: bash

我想处理mpv的youtube播放列表,我正在使用bash脚本。

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

现在,我希望将&index=处匹配的通配符回显/保存到变量中,以便进一步处理。

我该怎么做?

$ QUTE_URL的示例:

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

我想在这种情况下将3移交给youtube-downloader,以便它知道从哪里开始播放列表。好吧也许我也需要列表,输出应该是这样的 mpv -ytdl-raw-options = playlist-start = 3 -ytdl https://www.youtube.com/playlist?list= PL1bauNEiHIgyHtNfI-eIZDUfkNlz_TL2Z

1 个答案:

答案 0 :(得分:4)

匹配正则表达式:

UIView

输出:

3

来自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

  

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