如何将 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