【发布时间】:2017-11-22 08:49:47
【问题描述】:
我正在处理一个 CSV 文件,其中一列是具有数组格式的字符串的单元格。以下是访问这些单元格的样子:
$csv = Import-Csv $filelocation
foreach ($line in $csv)
{
Write-Host $line.ColumnName
}
输出:
[属性=[值1,值2,值3]] [属性=[值1,值2]] ...可以看到每个单元格都输出一个带有数组结构的字符串。我想将每个单独的字符串视为带有Property[0] = value1 等的数组。
有没有简单的方法来做到这一点?否则,我认为我需要使用 Reg Ex。
【问题讨论】:
-
您提供的示例输出似乎暗示属性值是字符串。如果是这样,那么如果字符串包含逗号,那么使用正则表达式将会很困难。能否提供 CSV 文件的实际内容?
-
我无法共享整个文件,我认为它包含敏感数据,但这里是使用原始文本编辑器从中获取的部分 sn-p:
,,,,,"[AsymmetricKey=[]]","[AppAddress=[[AddressType=Reply,Address=urn:ietf:wg:oauth:2.0:oob]]]","[AppAuxiliaryId=[]]",,,,在这里您可以看到一堆空列以及其中一些“类似数组”的字符串。 -
如果属性值包含逗号会怎样?
-
我希望能够像一系列字典一样导航。类似:
foreach($value in $line.ColumnName.AppAddress) { write-host $value.AddressType }会为该行返回“回复”。 -
如果属性值包含逗号会怎样?即
[Property=[value1,"value2a,value2b",value3]]。然后,如果它包含"?[Property=[value1,"value2a,value2b","value""3"""]]?
标签: arrays powershell csv