powershell:从csv文件中的数值前提取数据

时间:2018-05-18 19:24:13

标签: powershell csv

我对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;
    }

任何建议。

1 个答案:

答案 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