CSV ファイルに含まれる数千の URL のリストがあります。それらは、フォルダー、変数などを含む完全な長さです。さらに分析するために、ドメインのリストを作成したいと思います。この関連する SO スレッドを見つけましたが、Powershell は初めてで、CSV の行でこれを反復する方法がわかりません。
私の CSV には列が 1 つしかありません。
http://something.net/prod/case_studies.asp
http://www.another.com/prod/group/gold/price_guarantee.asp
http://www.goodsite.co.uk/prod/case.asp?utm_source=google&utm_medium=search
http://wheel.net/prod/studious.asp
http://www.buystrop.com/gap/index.php?page_id=2345&group_id=9876
これが私が終わらせたいものです:
something.net
www.another.com
www.goodsite.co.uk
wheel.net
www.buystrop.com
他のスレッドで見つけたコードを何度か繰り返してみましたが、まだ何も機能していません。エラーが発生するか、出力が空白になります。
編集: これまでに試したコードは次のとおりです。
$file = Get-Content 'file.csv'
$domains = ForEach ($p in $file) {select ([System.Uri]$p).Host}
エラーは発生しません。コードは実行されますが、$domains は空です。
$domains = ForEach-Object {$file | select-object [System.Uri]$file.Host}
$domains = ForEach-Object [System.Uri]$file.Host
これらは両方とも、各行をループするのではなく、ファイル全体を見ていることを示すエラーを返します。これらについて数十のバリエーションを試しましたが、各行の URL をどのように解析するかはまだわかりません。