從本機 html 檔案解析出特定的 URL

從本機 html 檔案解析出特定的 URL

我想從已儲存的 URL 解析出某些 URLhtml- 檔案包含一個簡單的 bash 腳本/命令,這樣我就可以透過以後下載它們wget
到目前為止我所擁有的是:

awk 'BEGIN{ RS="<a *href *= *\""} NR>2 {sub(/".*/,"");print; }' index.html >> url-list.txt

它將我的 html 文件中的每個連結寫入一個整潔的 txt 文檔中。

然而,我需要的只是特定的鏈接

  • 來自某個域
  • 例如所有 .ogg 文件

一切最終看起來都是這樣的:

http://www.foo.com/(randomfolder)/(randombasename).ogg

或者

http://subdomain.foo.com/(randomfolder)/(anotherrandomsubfolder)/(randombasename).ogg

先致謝!

答案1

你說你需要「在 Bash 中」執行此操作,但你的意思似乎是「在腳本中」而不是「使用純 Bash 語法」(有區別)。我假設您想要“在腳本中”的含義。


如果您已將所有連結保存在文件中的單獨行中,則可以http://www.example.com/使用以下命令挑選網域上的所有連結

grep "^http://www\.example\.com/" filewithlinks.txt

或所有以.ogg以下結尾的鏈接

grep "\.ogg$" filewithlinks.txt

(句點前面的反斜線是為了轉義“ .”符號,否則表示“任何字元”。“ \.”表示字面句點。如果不轉義,您也會匹配以“logg”結尾的連結。)

您也可以直接在命令中進行行匹配awk ,但我相信,不時更改會更複雜。最簡單的方法是將完整的連結清單保存在文件中,然後只需使用grep上面的範例搜尋文件。然後,如果您想更改匹配模式,您也不必再次下載和解析文件。

相關內容