PowerShell:按指定列值长度筛选CSV行(保留NumInventaire长度为6的行)
用PowerShell过滤CSV中
NumInventaire列长度严格为6的行 刚好有个简洁的PowerShell命令可以搞定这个需求,直接筛选出符合条件的行:
# 替换成你的实际文件路径 Import-Csv -Path "原始数据.csv" | Where-Object { $_.NumInventaire.Length -eq 6 } | Export-Csv -Path "过滤后的数据.csv" -NoTypeInformation -Encoding UTF8
逐段解释:
Import-Csv -Path "原始数据.csv":将目标CSV文件加载为PowerShell对象集合,每一行数据对应一个对象,列名就是对象的属性名。Where-Object { $_.NumInventaire.Length -eq 6 }:核心过滤逻辑,只保留NumInventaire属性的字符长度严格等于6的行。Export-Csv ...:把过滤后的结果导出到新CSV文件,-NoTypeInformation避免生成PowerShell专属的类型信息行,-Encoding UTF8确保输出文件没有乱码问题。
额外提示:
- 如果你的CSV用的不是逗号分隔(比如分号),记得加上
-Delimiter参数,比如Import-Csv -Path "原始数据.csv" -Delimiter ";"。 - 可以先去掉
Export-Csv部分,直接运行前半段命令,在控制台预览结果,确认符合预期后再导出文件。
内容的提问来源于stack exchange,提问作者UserToulouse31




