CSV:Powershell: 删除单元格中包含特定单词的行
CSV:Powershell: Deleting rows containing specific word in the cell
我在根据要求解析 csv 和删除行时遇到问题。
- 我的csv文件格式不均匀,有很多列是空白的,但我希望它们被认为是正确的单元格
csv 在实际 header 之前有一些行(行数不固定),底部可能有 2 行。我希望我的 csv 从 header 而不是第一行开始。
Import-Csv file.csv | Get-Member
这段代码只给了我两个成员类型,但 csv 有超过 20 列
csv 示例:
1,ab
x,33,455
空行
x,12,134
还有几行
f,er,fsdvf
空行
header从这里开始,20+列
提前致谢
如果您知道 header(列),您总是可以强制 Import-Csv
使用这些列,即使文件的第一行另有说明:
Import-Csv file.csv -Header One, Two, Three, Four
缺点是您最终会得到一些您可能不需要的 objects。
作为替代方案,您可以找到符合 header 的行并使用 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 的。
我在根据要求解析 csv 和删除行时遇到问题。
- 我的csv文件格式不均匀,有很多列是空白的,但我希望它们被认为是正确的单元格
csv 在实际 header 之前有一些行(行数不固定),底部可能有 2 行。我希望我的 csv 从 header 而不是第一行开始。
Import-Csv file.csv | Get-Member
这段代码只给了我两个成员类型,但 csv 有超过 20 列
csv 示例:
1,ab
x,33,455
空行
x,12,134
还有几行
f,er,fsdvf
空行
header从这里开始,20+列
提前致谢
如果您知道 header(列),您总是可以强制 Import-Csv
使用这些列,即使文件的第一行另有说明:
Import-Csv file.csv -Header One, Two, Three, Four
缺点是您最终会得到一些您可能不需要的 objects。
作为替代方案,您可以找到符合 header 的行并使用 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 的。