如何将 xargs 与 grep 和 head 一起使用以获得每个网站的首次出现?
how use xargs with grep and head for get first ocurrence of each website?
在每个页面中我有多个 links 的 png 我需要获取每个页面的第二个 png link 但是这个命令只获取第一页的第二个 link
我怎么解决
echo "linkh\nlfinkh\nlinekh\nli3nkh\n"|xargs -d '\n' -n1 -I % curl -s -N 'https://www.myweb.org/images?q=%' | grep -shoP "(http).*?(png|jpg|jpeg)" |sed -n 2p
这条命令只输出一个link
我需要输出四个link(每页第二个link)
请帮帮我
https://www.myweb.org/images?q=linkh
第一页有一个 http:ffeefe.png
https://www.myweb.org/images?q=lfinkh
第二页有一个 http:f43feefe.png
https://www.myweb.org/images?q=linekh
第三页有一个 http:f433feefe.png
https://www.myweb.org/images?q=li3nkh
第四页有一个 http:f435feefe.png
您的代码仅找到第一个结果,因为您将所有四个页面的 html 组合到 grep
的一个实例中,然后找到第一个匹配项。相反,您想 运行 grep
四次,每页一次。解决此问题的一种直接方法是使用循环而不是 xargs
:
echo -e "linkh\nlfinkh\nlinekh\nli3nkh"|
while read x; do
curl -s -N 'https://www.myweb.org/images?q=$x' |
grep -shoP "(http).*?(png|jpg|jpeg)" |
sed -n 2p
done
在每个页面中我有多个 links 的 png 我需要获取每个页面的第二个 png link 但是这个命令只获取第一页的第二个 link
我怎么解决
echo "linkh\nlfinkh\nlinekh\nli3nkh\n"|xargs -d '\n' -n1 -I % curl -s -N 'https://www.myweb.org/images?q=%' | grep -shoP "(http).*?(png|jpg|jpeg)" |sed -n 2p
这条命令只输出一个link
我需要输出四个link(每页第二个link)
请帮帮我
https://www.myweb.org/images?q=linkh 第一页有一个 http:ffeefe.png
https://www.myweb.org/images?q=lfinkh 第二页有一个 http:f43feefe.png
https://www.myweb.org/images?q=linekh 第三页有一个 http:f433feefe.png
https://www.myweb.org/images?q=li3nkh 第四页有一个 http:f435feefe.png
您的代码仅找到第一个结果,因为您将所有四个页面的 html 组合到 grep
的一个实例中,然后找到第一个匹配项。相反,您想 运行 grep
四次,每页一次。解决此问题的一种直接方法是使用循环而不是 xargs
:
echo -e "linkh\nlfinkh\nlinekh\nli3nkh"|
while read x; do
curl -s -N 'https://www.myweb.org/images?q=$x' |
grep -shoP "(http).*?(png|jpg|jpeg)" |
sed -n 2p
done