检查变量是否包含特定的文本字符串bash
我想检查检查变量是否包含特定的文本字符串bash,bash,macos,text-processing,Bash,Macos,Text Processing,我想检查$url的内容是否包含v=在https://youtube.com/watch? 示例输出(注意v=的当前和缺失实例): 我会尝试一些代码来测试,但我真的不知道该用什么 操作系统是macOS High Sierra 10.13.6,而bash版本是3.2.57(1)-在双方括号内发布,操作员支持globs: if [[ $url == 'https://youtube.com/watch?'*v=* ]] 如果您想要获取视频ID,那么使用正则表达式实现这一点非常简单。查看或尝试通过谷歌
$url
的内容是否包含v=
在https://youtube.com/watch?
示例输出(注意v=
的当前和缺失实例):
我会尝试一些代码来测试,但我真的不知道该用什么
操作系统是macOS High Sierra 10.13.6,而bash版本是3.2.57(1)-在双方括号内发布,操作员支持globs:
if [[ $url == 'https://youtube.com/watch?'*v=* ]]
如果您想要获取视频ID,那么使用正则表达式实现这一点非常简单。查看或尝试通过谷歌搜索“regex获取youtube视频id”
如果你不知道,考虑使用
v
结尾的查询字符串添加任何参数来欺骗它,例如https://www.youtube.com/channel/UC-9-kyTW8ZkZNDHQJ6FgpwQ?env=2
将通过,youtube将忽略参数env
@brunorey我的主要目标是获得v=
(又称视频ID)之后的11个字符,并忽略所有其他字符。有没有更好的办法?我想不出别的了way@brunorey寻找watch?v=
和&v=
不是更安全的主意吗?i、 e.如果未找到watch?v=
,请尝试查找&v=
。这看起来确实很有用,但我不喜欢使用JS。我已经有了youtube dl
,将不得不考虑使用它作为视频ID。顺便说一句,我的目标(目前)是只获取一个视频的ID,而不是从频道或播放列表中获取所有ID。
if [[ $url == 'https://youtube.com/watch?'*v=* ]]