好吧我有一个csv,我导入变量$ csv
name description system redundant
---- ----------- ------ ---------
hi don't settle sight dumb
hello why not settle settle
this just fails why? settle
我想在$ csv.description或$ csv.system中找到一个特定的字符串。如果找到该字符串,我想在$ csv.name
下返回相关的单元格值我无法在$ csv.redundant中找到任何选择字符串
这是我到目前为止所做的:
$csv = import-csv -path c:\hi
$find = $csv | select-string "settle"
输出:$ find
@{name=hi; description=don't settle; system=sight; redundant=dumb }
@{name=hello; description=why not; system=settle; redundant=settle}
@{name=this; description=just fails; system=why?; redundant=settle}
但是 - 如果我执行$ find.name则没有返回,即使$ find.gettype()显示这是一个数组。此外,我不知道如何获取select-string以避免$ csv.redundant
我需要输出只是数组中前两个对象的$ find.name。
感谢
答案 0 :(得分:2)
请勿使用Select-String
,而是使用Where-Object
:
$searchTerm = 'settle'
$csv |Where-Object {$_.description -match $searchTerm -or $_.system -match $searchTerm} |Select-Object -Expand Name
答案 1 :(得分:0)
ipcsv C:\temp\test.csv | ? {$_.description, $_.system -like "*settle*"} | select Name