保存したURLから特定のURLを解析したいhtml- 簡単な bash スクリプト/コマンドを含むファイルなので、wget
後でダウンロードできます。
これまでのところ、次のものがあります。
awk 'BEGIN{ RS="<a *href *= *\""} NR>2 {sub(/".*/,"");print; }' index.html >> url-list.txt
これは、HTML ファイル内のすべてのリンクを、きちんとした txt ドキュメントに書き込みます。
しかし、必要なのは特定のリンクだけです
- 特定のドメインから
- たとえばすべての.oggファイル
最終的に次のようになります。
http://www.foo.com/(ランダムフォルダ)/(ランダムベース名).ogg
または
http://subdomain.foo.com/(ランダムフォルダ)/(別のランダムサブフォルダ)/(ランダムベース名).ogg
前もって感謝します!
答え1
「Bash で」実行する必要があるとおっしゃっていますが、「純粋な Bash 構文を使用する」のではなく、「スクリプトで」という意味のようです (違いがあります)。「スクリプトで」という意味を希望しているのだと思います。
文書内の別々の行にすべてのリンクを保存した場合、http://www.example.com/
次のようにしてドメイン上のすべてのリンクを選択できます。
grep "^http://www\.example\.com/" filewithlinks.txt
.ogg
またはで終わるすべてのリンク
grep "\.ogg$" filewithlinks.txt
(ピリオドの前のバックスラッシュは、" .
" 記号をエスケープするためのもので、通常は "任意の文字" を意味します。" \.
" は、リテラルのピリオドを意味します。エスケープしないと、たとえば "logg" で終わるリンクにも一致します。)
コマンド内で直接行のマッチングを行うこともできますawk
が、時々変更するのはより複雑になると思います。最も簡単な方法は、リンクの完全なリストをファイルに保存し、grep
上記の例のようにファイルを検索することです。そうすれば、マッチングパターンを変更する場合でも、ドキュメントを再度ダウンロードして解析する必要がなくなります。