所以我在使用当前正在制作的快速 shell 脚本时遇到了麻烦,该脚本包括输入 YouTube 频道名称,然后找到 5 个最新视频。
我正在使用 YouTube 前端“vid.puffyan.us”来执行此操作。
因此,当 grep 5 个视频时,由于站点 html 的方式,相同的视频 id 重复 3 次,有没有办法跳过这些,并输出 5 个不同的 id?
我当前的代码是:
#!/bin/sh
query=$(printf '%s' "$*" | tr ' ' '+')
channel=$(curl -s "https://vid.puffyan.us/search?q=$query" | grep -Eo "channel/.{24}" | head -n 1)
if [ -z "$query" ]
then
echo "blank input!"
else
curl -s "https://vid.puffyan.us/$channel" | grep -Eo "watch\?v=.{11}" | head -n 5
fi
答案1
一个简单的修复来自mdmay74就是将输出通过管道uniq
,然后通过head
。
例子:
curl -s "https://vid.puffyan.us/$channel" | grep -Eo "watch\?v=.{11}" | uniq | head -n 5