【问题标题】:Parsing CSV in Powershell from a string?从字符串中解析 Powershell 中的 CSV?
【发布时间】:2016-08-24 13:17:38
【问题描述】:

我正在使用 Get-Content 读取文件,对其进行一些修改,然后我有一个 CSV 结构,可以做进一步的事情。如果我这样做了 Out-File,然后 Import-CSV 它,工作正常,但我想摆脱这种开销,并将它从我编辑的字符串解析为 CSV。 我面临的问题是,我的 CSV 字段由逗号分隔,并用引号括起来,但是,我的 CSV 中的某些列包含多行字符串,其中包含逗号,但这些逗号不是分隔符。 我正在尝试做

$mycsvcontent | ConvertFrom-CSV

$mycsvcontent | ConvertFrom-CSV -Header "Column1","Column2","etc..."

但是因为“not delim commas”,导致CSV的结构解析不正确。

我怎样才能做到这一点?

【问题讨论】:

    标签: string csv powershell


    【解决方案1】:

    如果您的 $mycsvcontent 是适当的对象,则字段中的逗号(用引号括起来)应该不是问题。

    $mycsvcontent = {"a,a","b","c,c"}
    $mycsvcontent | ConvertFrom-CSV -Header "Column1","Column2","etc..."
    

    返回

    Column1 Column2 etc... 
    ------- ------- ------  
    a,a     b       c,c
    

    如果只是一个数组,试试下面的方法:

    $mycsvcontent = @("a,a","b","c,c")
    $f = '"' + $($mycsvcontent -join '","') + '"'
    $f | ConvertFrom-CSV -Header "Column1","Column2","etc..."
    

    结果是一样的

    【讨论】:

      猜你喜欢
      • 2021-03-21
      • 2012-06-13
      • 2021-07-29
      • 1970-01-01
      • 2014-09-17
      • 2021-01-08
      • 1970-01-01
      • 1970-01-01
      • 2017-01-27
      相关资源
      最近更新 更多