Поиск по ключевым словам из CSV и отображения результатов - PullRequest
0 голосов
/ 04 июня 2019

в CSV Включить столбец программного имени

Мне нужно найти ключевое слово, содержащее 7-zip (или cmm), если оно ищется, отобразить его версию.

$csvtxt = @'
softname,version
7-Zip 18.05 (x64),18.05
Adobe Acrobat DC,18.011.20038
Adobe CMM,1.0
Adobe Flash Player 27 ActiveX,27.0.0.187
Adobe Flash Player 27 PPAPI,27.0.0.187
'@

$csv = ConvertFrom-Csv $csvtxt
$soft1 = "7-zip"
$soft2 = "cmm"

Ответы [ 2 ]

1 голос
/ 04 июня 2019

вы можете использовать способ, которым -match работает против коллекции.это даст объекты, которые соответствуют шаблону регулярных выражений.

что он делает ...

  • создать набор данных для работы путем имитации чтения в CSV-файле
  • создать список программного обеспечения для проверки на
  • преобразует этот список в экранированный шаблон регулярных выражений ИЛИ
  • запускает оператор -match для коллекции, используя приведенный выше шаблон
  • , сохраняет результаты в $FoundSoftware коллекции
  • показать его на экране

вот код ...

# fake reading in a CSV file
#    in real life, use Import-CSV
$InStuff = @'
softname,version
7-Zip 18.05 (x64),18.05
Adobe Acrobat DC,18.011.20038
Adobe CMM,1.0
Adobe Flash Player 27 ActiveX,27.0.0.187
Adobe Flash Player 27 PPAPI,27.0.0.187
'@ | ConvertFrom-Csv

$SoftwareList = @(
    '7-zip'
    'cmm'
    )
$Regex_SL = $SoftwareList.ForEach({[regex]::Escape($_)}) -join '|'

$FoundSoftware = $InStuff -match $Regex_SL
# if you dislike the way that "-match" works directly on an array, use the next line 
#$FoundSoftware = $InStuff.Where({$_.SoftName -match $Regex_SL})

$FoundSoftware

вывод ...

softname          version
--------          -------
7-Zip 18.05 (x64) 18.05  
Adobe CMM         1.0  

если вы хотите только голыеимена, вы можете использовать Select-Object -ExpandProperty, чтобы получить это.[ ухмылка ]

0 голосов
/ 04 июня 2019

Вы бы использовали Where-Object командлет здесь.

ConvertFrom-Csv $CSVTxt | Where-Object -FilterScript { $_.SoftName -match "7-zip|cmm" } | Select-Object -Property Version

Подробнее о Where-Object здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...