5

我想在文件中的任何位置找到包含单词“navbar”的文件。我可以使用 Mac 的 grep 命令来做到这一点,如下所示:

grep -R "navbar" *

它在 PowerShell 1.0 中的等价物是什么?

4

1 回答 1

7
findstr /s "navbar" *

这是一个本机命令,但应该工作得很好。

我认为PowerShell 1.0 本身有点棘手,因为Select-String(直接等效)只存在于 2.0 之后。因此,您必须使用以下方法:

Get-ChildItem -Recurse |
  ForEach-Object {
    $file = $_
    ($_ | Get-Content) -cmatch 'navbar' |
      ForEach-Object { $file.Name + ':' + $_ }
  }

简洁版本:

ls -r|%{$f=$_;($_|gc)-cmatch'navbar'|%{$f.Name+":$_"}}

这是字面上的意思:

  1. 递归查找所有文件(-R部分)。
  2. 读取每个文件并使用文件名打印匹配的行。
于 2012-06-20T05:10:16.887 回答