我有一个CSV,我试图导入,当我尝试导入,许多条目无法导入,因为其中一个字段不是有效的http(s)
URL。下面是一个例子
username,username2,username3,title,password,note,url,category,otpSecret
[email protected],,,website1,somepass,,website1.com,,
[email protected],,,website2,somepass,,https://website2/Login,,
[email protected],,,website3.com,somepass,,website3.com,,
如你所见,第1,3行失败,第2行通过。我需要“修补”第1、3行,但我仍然需要所有行。我宁愿不修改的地方,但我不反对它。
最后,我的数据需要看起来像这样:
username,username2,username3,title,password,note,url,category,otpSecret
[email protected],,,website1,somepass,,https://website1.com,,
[email protected],,,website2,somepass,,https://website2/Login,,
[email protected],,,website3.com,somepass,,https://website3.com,,
我已经尝试过将它们按好的和坏的进行分组,这样我所需要做的就是重新Map“坏的”,然后保存文件,但是我的“坏的”并不是那么好。
$stuff =Import-Csv -Path ./credentials.csv | Group-Object {$_.url -like 'https*'}
$stuff
Count Name Group
----- ---- -----
121 False {@{username=...},}
284 True {@{username=...},}
我认为代码看起来像这样(伪代码)
($stuff | Where-Object {$_.Name -eq 'False' } | %{... mapping here.. } | Select -First 1).Group +
($stuff | Where-Object {$_.Name -eq 'True' } | Select -First 1).Group
1条答案
按热度按时间ltskdhd11#
根据所提供的信息,以下内容应该会有所帮助,但很难说解决方案是否对所有数据都足够强大。
本质上,它使用
IsWellFormedUriString
method检查.url
值是否是绝对值Uri
,如果不是,它将更新https://
的属性。这段代码使用所讨论的数据的输出将是: