У меня есть CSV-файл, который содержит данные, как показано ниже:
account,id,name
1234,a3bu5,test
12,b4cf8,test
789,t4wy7,test2
Мне нужно отфильтровать по заголовку name и извлечь все массивы account в массив.
В моем текущем коде я перебираю несколько имен и хочу хранить номера своих учетных записей в отдельных массивах. (т.е. (1234,12) и (789) в этом примере)
Пример кода (выберите заголовок):
$namesToParse = @("test")
$inputFile = "output.csv"
$testArray = @()
$csvFile = Import-csv $inputFile
For ($i = 0; $i-le $namesToParse.length-1; $i++) {
(" - Getting account numbers for '{0}'`n" -f ($namesToParse[$i]) ) | write-host -ForegroundColor Blue
#SELECT HEADER
$csv = $csvFile | Select-String -Pattern $namesToParse[$i] | select $csvFile.account | Out-String
}
$testArray = $csv.split(",")
$testArray[0]
Пример кода (выберите строку):
$namesToParse = @("test")
$inputFile = "output.csv"
$testArray = @()
$csvFile = Import-csv $inputFile
For ($i = 0; $i-le $namesToParse.length-1; $i++) {
(" - Getting account numbers for '{0}'`n" -f ($namesToParse[$i]) ) | write-host -ForegroundColor Blue
#SELECT LINE
$csv = $csvFile | Select-String -Pattern $namesToParse[$i] | select line | Out-String
}
$testArray = $csv.split(",")
$testArray[0]
Мне известно, что проблема связана с моей переменной csv, но я не уверен, что использовать для отображения моих результатов. Самые близкие примеры, которые я нашел в Интернете, включают выбор заголовка учетной записи, как показано выше, но при этом игнорируется шаблон, который фильтрует по имени и отображает все номера счетов. Если я использую , выберите строку вместо счета, шаблон работает, но все значения получены, у меня остается больше данных, чем мне требуется. Это добавляет дополнительные шаги к сценарию, который я надеюсь устранить.
Каков наилучший способ получения необходимой мне информации или я неправильно передаю эту информацию?