基本上,我有大量的网络钓鱼链接,并且正在尝试精简https://www。以及.com .edu等之后的所有内容,因此,基本上,powershell脚本的理想输出应该是一长串url,所有这些URL看起来都类似于google.com或microsoft.com,到目前为止,我已经导入了csv,但是我尝试了一切要么无效,要么将www留在开始。任何帮助都会很棒。使用的csv im是这样的:http://data.phishtank.com/data/online-valid.csv
$urls = Import-Csv -Path .\online-valid.csv | select -ExpandProperty "url"
答案 0 :(得分:1)
以下内容将使用您的CSV并为您做魔术。与[Uri]
一起玩,在解析Web链接时非常有用。
$csv = import-csv C:\temp\verified_online.csv
Foreach($Site in $csv) {
$site | Add-Member -MemberType NoteProperty -Name "Host" -Value $(([Uri]$Site.url).Host -replace '^www\.')
}
$csv | Export-Csv C:\temp\verified_online2.csv -NoTypeInformation
根据Mklement0的建议进行了调整。
答案 1 :(得分:1)
Drew's helpful answer的一种简洁快捷的选择,它基于将URL字符串直接转换为[uri]
(System.Uri
的 array )实例,然后从其www.
(服务器名称)属性中修剪前缀.Host
(如果存在):
([uri[]] (Import-Csv .\online-valid.csv).url).Host -replace '^www\.'
请注意,-replace
operator是基于正则表达式的,正则表达式^www\.
确保仅在字符串的开头(www
)处替换^
,并且仅如果后跟一个 literal .
(\.
),在这种情况下,将删除此前缀(用隐含的空字符串替换);如果没有这样的前缀,则输入字符串按原样传递。
该解决方案为了方便和快捷地立即将整个CSV文件读取到内存中,并且仅将经过裁剪的服务器名称输出为字符串数组。