使用PowerShell处理每行不同列的CSV文件

时间:2018-11-15 16:20:16

标签: powershell csv

我有一个没有可用标题行的CSV文件(第一行是有关该文件的信息,即创建日期)。

第一列中的CSV文件中有已设置的记录类型。即第1列可以是PRA,ASA或POA。

取决于列1的值,将确定其余字段中的内容。在该文件发送给第三方之前,我需要从该文件中清除所有我不需要安全性的数据。由于我们有不同的记录类型,因此我无法做一个简单的循环来屏蔽第3、4和6列。

我的计划是逐行浏览CSV,查看第一列,然后将每种记录类型输出到单独的文件中,以便可以对其进行单独处理。

Import-Csv -Delimiter ~ -Encoding UTF8 -Path tinysample.dat | Foreach-Object {
    foreach ($property in $_.PSObject.Properties) {
        if ($property.Name -eq 'HDR') {
            if ($($property.Value) -eq 'PRA' -OR $($property.Value) -eq 'POA') {
                Export-Csv -InputObject $_ -Append -Delimiter ~ -Encoding UTF8 -LiteralPath "$($property.Value).dat"

            }
        }
    }
}

目前,记录与我不希望的标题行一起输出。我想在每个文件中设置自己的标题,然后可以轻松地使用它确定应该隐藏哪些列。

一些记录也被新的CSV截断了。

我能够通过使用grep和awk的bash来实现这一目标,并希望我能够使用Powershell做到这一点。

0 个答案:

没有答案