卷曲多个文件并将输出保存在一个文件中

Use*_*841 3 bash curl

我正在使用curl抓取网站的 HTML。我只想抓取前 20 行,并将其保存在外部文件中。我需要抓取大约 10 个 URL,并希望将它们全部保存在同一个文件中。最好在结果上方带有每个文件的 URL。我想出的是:

curl http://example.com/url1 | head -20 && curl http://example.com/url2 | head -20 > exportfile

但是,这会产生两个问题:

  • 这只会保存最新的页面(如果我在每个语句之后放置 > exportfile,它会覆盖文件
  • 这不会将实际命令保存在文件中

有什么方法可以使这项工作按我的意愿进行?

Mat*_*Mat 7

您可以将所有 URL 保存在一个文件中(例如urls.txt,每行一个),然后在脚本中循环遍历它们:

#! /bin/bash

# optional, clean up before starting
rm exportfile

while read url ; do
   echo "URL: $url"       >> exportfile
   curl "$url" | head -20 >> exportfile
done < urls.txt
Run Code Online (Sandbox Code Playgroud)

重要的事情之一是使用>>附加。>覆盖。