我有一个包含在 CSV 文件中的数千个 URL 的列表。它们是全长的,包括文件夹、变量等。我想生成一个域列表以供进一步分析。我找到了这个相关的 SO 线程,但我是 Powershell 的新手,我没有看到如何在 CSV 的行上迭代它。
我的 CSV 只有一列:
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。