我正在使用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