我有一些处于(差)分隔状态的数据,我已成功转为CSV进行进一步解析。
我设法改变了它,它的格式是:
“Timestamp”,“ServerName”,“ProcessName”,Column4 = Data4,Column5 = Data5,... Column25 = Data25
在实践中,这可能看起来像:
12:34:23,MyServerName,MyProcess,Type = 10,Price = 45.4,ProductType = AV
21:23:17,MyServerName2,MyProcess2,Type = 10,ProductType = AV,ClassKey = 2324
我有两个问题,我可以使用一些帮助解决。第一个是解析数据,以便“Type = 10”成为“Type”列标题,当我将其上传到MS SQL Server数据库时,该行的值为“10”。第二个问题是我的列在CSV中的位置不一致。听起来我必须制作一系列关键:值对,但我不确定如何做到这一点,或者它是否是最好的方法。任何人都可以提供一些关于哪种工具/方法最适合这种情况的见解吗?
答案 0 :(得分:1)
不确定这是否有帮助,但是:
$data = @(
'12:34:23, MyServerName, MyProcess, Type=10, Price=45.4, ProductType=AV'
'21:23:17, MyServerName2, MyProcess2, Type=10, ProductType=AV, ClassKey=2324'
)
$data -replace '^([^,]+),([^,]+),([^,]+)','Timestamp=$1, ServerName=$2, ProcessName=$3' |
foreach {New-Object PSObject -Property (convertfrom-stringdata $_.replace(',',"`n"))}
Timestamp : 12:34:23
ProcessName : MyProcess
ServerName : MyServerName
Price : 45.4
ProductType : AV
Type : 10
Timestamp : 21:23:17
ProcessName : MyProcess2
ClassKey : 2324
ServerName : MyServerName2
ProductType : AV
Type : 10