与此Bash命令等效的PowerShell是什么?

时间:2010-01-20 16:13:54

标签: powershell grep xargs

我正在尝试创建一个CLI命令,让TFS检出所有包含特定字符串的文件。我主要使用Cygwin,但tf命令在Cygwin环境中运行时无法解析路径。

我认为PowerShell应该可以做同样的事情,但我不确定grepxargs的等效命令是什么。

那么,以下Bash命令的等效PowerShell版本是什么?

grep -l -r 'SomeSearchString' . | xargs -L1 tf edit

2 个答案:

答案 0 :(得分:12)

在PowerShell中使用一些UNIX别名(如ls):

ls -r | select-string 'SomeSearchString' | Foreach {tf edit $_.Path}

或以更规范的Powershell形式:

Get-ChildItem -Recurse | Select-String 'SomeSearchString' | 
    Foreach {tf edit $_.Path}

并使用PowerShell别名:

gci -r | sls 'SomeSearchString' | %{tf edit $_.Path}

答案 1 :(得分:2)

我发现使用变量更容易理解,例如,

PS> $files = Get-ChildItem -Recurse | 
       Select-String 'SomeSearchString' | 
       %{$_.path}  | 
       Select -Unique
PS> tf edit $files