あなたはPerlでそれを行うことができます:
$ perl -ne 'print if /HEADER TEXT/ .. /FOOTER TEXT/' file.html
区切り文字の間のテキストのみを印刷するには、次を使用します。
$ perl -000 -lne 'print $1 while /HEADER TEXT(.+?)FOOTER TEXT/sg' file.html
この/s
スイッチにより、正規表現マッチャーは文字列全体を単一の行として処理します。これは、ドットが改行と一致することを/g
意味し、可能な限り一致することを意味します。
上記の例は、ローカルディスク上のHTMLファイルをクランキングしていることを前提としています。最初にそれらをフェッチする必要がある場合は、get
fromを使用してLWP::Simple
ください:
$ perl -MLWP::Simple -le '$_ = get "http://stackoverflow.com";
print $1 while m!<head>(.+?)</head>!sg'
上記のような正規表現を使用したHTMLの解析は、一般的なケースでは機能しないことに注意してください。迅速で汚れたスキャナーで作業している場合は問題ありませんが、より堅牢である必要があるアプリケーションの場合は、実際のパーサーを使用してください。