使用选择字符串搜索文件数组

时间:2019-07-24 16:21:55

标签: powershell

我能够使用Select-String返回包含我要查找的某些文本的文件列表:

Get-ChildItem *.cs -recurse | Select-String -SimpleMatch ".ToList()" | group path | select name

我想做的是将后续过滤器应用于查询结果。我想做类似的事情:

if($fileSet -eq $null)
{
    $fileSet = Get-ChildItem *.cs -recurse | Select-String -SimpleMatch ".ToList()" | group path | select name 
}

$fileSet | Select-String -SimpleMatch "Additional Term" | group path | select name

我认为我需要一种将文件数组($ fileSet)的内容传递给Select-String的方法;但是我很确定我会犯错。任何帮助表示赞赏!

2 个答案:

答案 0 :(得分:1)

怎么样?

Get-ChildItem *.cs -Recurse | Select-String -SimpleMatch ".ToList()" | ForEach-Object {
  $_ | Select-String -SimpleMatch "Additional Term"
} | Group-Object Path | Select-Object -ExpandProperty Name

答案 1 :(得分:0)

能够按摩已接受的答案以保持与问题结构相似的内容

if($fileSet -eq $null)
{
    $fileSet = Get-ChildItem *.cs -recurse | Select-String -SimpleMatch ".ToList()"
}

$fileSet | foreach {
   Select-String -Path $_.Path -SimpleMatch "Additional Term"
} | Group-Object Path | Select-Object -ExpandProperty Name