그래서 YouTube 채널 이름을 입력한 다음 5개의 최신 동영상을 찾는 것과 관련된 빠른 쉘 스크립트를 현재 만들고 있는 데 문제가 있습니다.
저는 이 작업을 위해 YouTube 프런트엔드 "vid.puffyan.us"를 사용하고 있습니다.
그럼 5개의 동영상을 greping할 때 사이트 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