You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在PowerShell中过滤CSV列中的空值(附实操示例)

PowerShell过滤CSV指定列空值的正确方法

原代码存在的问题

  1. 错误使用-Header参数:你的输入CSV第一行本身就是表头("#P","A","E","S"),添加-Header会把这一行当成普通数据行处理,同时强制替换表头为指定值,最终导致导出的数据包含原表头行,不符合预期。
  2. 过滤条件无效:CSV中的空值("")被Import-Csv解析为空字符串([string]::Empty),而非$null,所以$_.S -ne $null无法过滤掉S列为空的行。

正确实现方法

根据你期望的输出(将原表头#P改为P,并过滤S列空值的行),可以用以下代码:

Import-Csv -Path "test.csv" |
    # 重命名#P列为P
    Select-Object @{Name='P'; Expression={$_.'#P'}}, A, E, S |
    # 过滤S列不为空的行(空字符串也会被排除)
    Where-Object { $_.S -ne '' } |
    Export-Csv -Path "export.csv" -Force -NoTypeInformation

如果不需要修改表头,只是保留原表头#P并过滤空值,代码可以简化为:

Import-Csv -Path "test.csv" |
    Where-Object { $_.S -ne '' } |
    Export-Csv -Path "export.csv" -Force -NoTypeInformation

验证结果

运行正确代码后,export.csv的内容会和你期望的一致:

"P","A","E","S"
"1","2","3","4"
"D","F","G","H"

内容的提问来源于stack exchange,提问作者Intern99

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 07:42:19