PerlのRegexp :: Common :: URI :: httpライブラリを使用してURLリストからホストを検索します。

PerlのRegexp :: Common :: URI :: httpライブラリを使用してURLリストからホストを検索します。

現在、次のテキストファイルからURLのリストを取得しています。

perl -MRegexp::Common=URI -nE 'say $& while /$RE{URI}{HTTP}{-scheme => "https?"}/g' urls.txt

hostそのフィールドだけを取得する方法を知りたいです。これパッケージ文書パラメータが言及されています-keepが、ソースコードの実装利用可能とは表示されません。

出力を別のプログラムにパイプして処理すると、目的の出力が得られることがわかりますが、このコマンドで目的の結果を取得できますか?

答え1

ただし、ソース実装では使用可能としてマークされません。

Regexp::Common::URI では実装されていませんが、Regexp::Common から継承されます。このパラメータを使用すると、次のように動作します。

perl -MRegexp::Common=URI -nE \
  'say $3 while /$RE{URI}{HTTP}{-scheme => "https?"}{-keep}/g' \
  urls.txt

関連情報