我有一个没有可用标题行的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做到这一点。