我正在尝试根据结果集中可用的总结果随机化起始索引,以便我可以通过 YouTube GData API 检索随机视频结果。我认为有两种方法可以做到这一点。第一个,将结果总数保存到一个 bash 变量并只发出 2 个 API 请求,第二个是通过使用逻辑根据结果集中的视频总数随机化 start-index 来实际检索“随机”视频/comparison 函数(似乎)在 API 查询本身中可用。
我认为可能的另一种方法是使用 XData 在查询本身中使用数学函数(即:https ://developers.google.com/youtube/2.0/developers_guide_protocol_partial#Fields_Formatting_Rules )但我玩的一点点我由于我不熟悉 XData 或 GData API,因此无法感受所需的语法。
我目前正在尝试第一种方法。抑制 grep 输出但在变量中捕获它是一个与此非常相似的问题,尽管没有一个答案实际上适用于我正在尝试做的事情,因为这是使用 pcregrep 而不是 grep,并且对于一个更复杂的问题,我认为问一个新问题对我来说会更好。
我正在尝试将 pcregrep 的输出保存到 bash 变量中,以便我可以通过 YouTube GData API 在另一个查询中使用它。
例子:
wget -q "https://gdata.youtube.com/feeds/api/videos?author=vice&fields=openSearch:totalResults" -O - | totalResults=`pcregrep -o1 '>([0-9]+)<' 2>&1` | echo $totalResults
这将返回一个空变量,删除输出重定向 (2>&1) 以及尝试用 $() 包围 pcregrep 也是如此。
我怎样才能得到结果...
wget -q "https://gdata.youtube.com/feeds/api/videos?author=vice&fields=openSearch:totalResults" -O - | pcregrep -o1 '>([0-9]+)<'
...保存到变量中?
这是我应该做我想做的事情的方式,还是实际搜索词中可用的比较/逻辑函数允许我使用单个 API 查询做我想做的事情?如果可能的话,我更喜欢单个 API 查询。