我想從已儲存的 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
上面的範例搜尋文件。然後,如果您想更改匹配模式,您也不必再次下載和解析文件。