我对csv文件有一个奇怪而复杂的问题。 CSV文件包含10K +记录。它包含应用程序版本列表。
Canon MF Toolbox 4.9.1.1.mf09 Canon MF Toolbox 4.9.1.1.mf11
Canon MF Toolbox 4.9.1.1.mf12 Canon MF Toolbox 4.9.1.1.mf14 Canon MF Toolbox 4.9.1.1.mf15 Canon MF Toolbox 4.9.1.1.mf16 Canon MF Toolbox 4.9.1.1.mf17 Canon MF Toolbox 4.9.1.1.mf18
我需要在数值之前获取数据。因此,我的输出将包含Canon MF Toolbox。
这只是一个例子,有很多软件。我可以打开并阅读PowerShell中的csv,但我不知道如何获得我想要的结果。
Import-Csv c:\scripts\software.csv |`
ForEach-Object {
$Name += $_.Name
write-host $name;
}
任何建议。
答案 0 :(得分:1)
您可以添加一个将数字排除在ForEach-Object迭代器中的正则表达式。
$Name = "Canon MF Toolbox 4.9.1.1.mf09 Canon MF Toolbox 4.9.1.1.mf11"
[regex]::Match($Name, "[A-Za-z_\s]*").captures.groups[0].value
返回
Canon MF Toolbox
如果您需要在发现数据中的新模式时修改正则表达式,我建议regex101.com