我有一个CSV,数据是这样的:..
#date,a,b,c#
10,1,0,0
11,0,0,1
12,0,1,0
13,0,1,0
14,0,0,1
15,1,0,0
16,0,1,0
17,1,0,0
18,1,0,0
19,0,0,1
我想捕获带有"1"标题 A、B、C 的列值,每行只出现一次"1"...... 我希望我的输出是类似于
A,C,B,B,C,A,B,A,A,C
任何帮助,不胜感激。 谢谢
-
只需遍历数据表中的每一行 (
$Row
) ($data
) -
收集所有符合您要求的列(
'a', 'b', 'c'
) 要求(例如-eq 1
) -
如果只有一列满足要求,则返回结果
ForEach ($Row in $Data) {
$Header = ('a', 'b', 'c').Where{ $Row.$_ -eq 1}
If ($Header.Count -eq 1) { $Header }
}
对于 CSV 文件中的每条记录,您需要遍历每个列/标题名称,直到找到该记录的列值1
:
foreach($record in Import-Csv .pathtofile.csv){
'A','B','C' |Where-Object { $record."$_" -eq 1 } |Select-Object -First 1
}