【发布时间】:2019-08-18 15:28:31
【问题描述】:
我有一个文本文件“c:\zz.txt”,其中的摘录如下:
#N ABSA ALL ROUNDER FoF
#D UT-ABSAAG
#P 20190215 393.83 393.83 0.00
#N ABSA BALANCED FUND
#D UT-ABSABA
#P 20190215 432.28 432.28 0.00
#N COMMUNITY GILT
#D UT-COM-G
#P 20190215 151.21 151.21 8.59
我想将其导出为以下格式的 .TXT 文件:
UT_Name,UT_Code,Date,Value1,Value2,Vol
ABSA ALL ROUNDER FoF,UT-ABSAAG,20190215,393.83,393.83,0
ABSA BALANCED FUND,UT-ABSABA,20190215,432.28,432.28,0
COMMUNITY GILT,UT-COM-G,20190215,151.21,151.21,8.59
下面是我的代码
clear-Host
get-content -raw "c:\zz.txt" | % { $_ -replace '(#N)',"`r`n"} |% { $_ -replace '(#D|#P)',','}|Set-Content ZZ1.txt
输出:
ABSA ALL ROUNDER FoF, UT-ABSAAG, 20190215 393.83 393.83 0.00
ABSA BALANCED FUND, UT-ABSABA, 20190215 432.28 432.28 0.00
COMMUNITY GILT, UT-COM-G, 20190215 151.21 151.21 8.59
问题: 问题原来是原始数据集中的数据集“#P”是固定长度的,这意味着我不能简单地用逗号替换所有空格,因为这也会影响我上面的字段名称“#N”和“#D”不想影响。
如何选择性地替换空格?
【问题讨论】:
标签: powershell export-to-csv multilinestring