PowerShell如何拆分CSV单列提取内容生成新列
实现方案
直接用PowerShell的CSV对象处理+正则提取即可完成需求,完整可运行代码如下:
# 导入源CSV文件,若直接处理字符串格式CSV可替换为ConvertFrom-Csv $csvData = Import-Csv -Path "你的源文件路径.csv" # 遍历每一行数据,提取数值并新增Sqft_Pallet列 $processedData = $csvData | ForEach-Object { # 正则匹配捕获括号后到sqft/pallet前的数值 if ($_.Item_Description -match '\((\d+\.?\d*) sqft/pallet') { $sqftVal = $matches[1] } else { $sqftVal = "" # 匹配不到时留空,可按需调整默认值 } # 追加新属性并指定列的排序 $_ | Select-Object MPN, Item_Description, @{Name='Sqft_Pallet';Expression={$sqftVal}}, Customer_Order } # 导出处理后的数据到新CSV文件 $processedData | Export-Csv -Path "你的输出文件路径.csv" -NoTypeInformation -Encoding UTF8
关键说明
- 用
Select-Object的计算属性可以直接追加新列,同时自定义列的排序,刚好匹配你需要的表头顺序 - 正则匹配比拆分操作更稳定,不会因为字符串其他位置的特殊符号出错
- 导出时加
-NoTypeInformation参数可以避免CSV开头多出PowerShell的类型标识行,-Encoding UTF8保证特殊字符、中文不乱码
内容的提问来源于stack exchange,提问作者moore1emu
相关产品推荐
相关产品推荐

