捲曲多個文件並將輸出保存在一個文件中

捲曲多個文件並將輸出保存在一個文件中

我正在使用curl抓取網站的 HTML。我只想獲取前 20 行,並將其保存在外部文件中。我需要取得大約 10 個 URL,並希望將它們全部保存在同一個檔案中。最好在結果上方顯示每個文件的 URL。我想出的是:

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

然而,這會產生兩個問題:

  • 這只保存最新的頁面(如果我在每個語句之後放置>導出文件,它會覆蓋該文件
  • 這不會將實際命令保存在文件中

有什麼辦法可以讓這份工作照我的意願進行嗎?

答案1

您可以將所有 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

其中重要的事情之一是使用>>附加。>覆蓋。

答案2

試試這個(bash):

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

相關內容