我在解析csv和根据要求删除行时遇到了麻烦。
csv在实际标题之前有一些行(不是固定行数),在底部可能有两行。我希望我的csv从标题而不是第一行开始。
Import-Csv file.csv | Get-Member
这段代码只给我两个成员类型,但csv有超过20列
csv示例:
1,AB
的x,33455
空行
的x,12134
更多行
女,呃fsdvf
空行
标题从这里开始,20 +列
提前致谢
答案 0 :(得分:0)
如果您知道标题(列),即使文件的第一行另有说明,您也可以强制Import-Csv
拥有这些列:
Import-Csv file.csv -Header One, Two, Three, Four
缺点是您最终会得到一些您可能不需要的对象。
作为替代方案,您可以在标题中找到一行,并使用Get-Content
/ ConvertFrom-Csv
组合:
$line = Select-String -Path file.csv -Pattern ^One |
ForEach-Object LineNumber
Get-Content -Path file.csv |
Select-Object -Skip ($line - 1) |
ConvertFrom-Csv
正则表达式可能应该更加冗长,但总体而言,这应该是最容易让应用程序生成假CSV的应用程序。