Что такое PowerShell, эквивалентный этой команде Bash? - PullRequest
8 голосов
/ 20 января 2010

Я пытаюсь создать команду CLI , чтобы TFS проверял все файлы, в которых есть определенная строка.Я в основном использую Cygwin , но у команды tf возникают проблемы с разрешением пути при запуске в среде Cygwin.

Я считаю, что PowerShell должен быть в состоянии сделать то же самое, ноя не уверен, каковы команды, эквивалентные grep и xargs .

Итак, какая версия PowerShell будет эквивалентна следующей Bash команда?

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

Ответы [ 2 ]

12 голосов
/ 20 января 2010

Использование некоторых псевдонимов UNIX в PowerShell (например, 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}
2 голосов
/ 16 июля 2012

Мне проще работать с переменной, например,

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