powershell csv фиксирует значение 1 из трех столбцов

#powershell #csv

#powershell #csv-файл

Вопрос:

У меня есть 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

Любая помощь приветствуется. Спасибо

Ответ №1:

  • Просто выполните итерацию по каждой строке ( $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 }
}
 

Комментарии:

1. Спасибо за быстрый ответ! Вау, спасибо, что рассказали мне, как это было получено. Я даю вам правильный ответ для первого ответа. Спасибо

Ответ №2:

Для каждой записи в файле CSV вам нужно будет перебирать имена столбцов / заголовков, пока не найдете тот, в котором значение столбца для этой записи равно 1 :

 foreach($record in Import-Csv .pathtofile.csv){
  'A','B','C' |Where-Object { $record."$_" -eq 1 } |Select-Object -First 1
}
 

Комментарии:

1. Спасибо, что рассказали мне, как это было получено.