TGViewer
Системный администратор Системный администратор @i_linux · 1.94K subscribers
Post #21 662
Как выполнить grep для поиска текста в PowerShell

grep – это мощная утилита для поиска текста в Linux, но она недоступна в Windows.

Хотя существуют сторонние порты и решения, PowerShell предлагает встроенные эквиваленты grep, которые выполняют ту же работу в ваших скриптах.

Использование findstr для поиска в PowerShell
В PowerShell есть несколько различных утилит поиска, каждая из которых обладает своими достоинствами.

Самая простая – findstr, которая является собственным исполняемым файлом windows.

Она хорошо подходит для замены grep для простых операций поиска в командной строке.

Например, вы можете передать ему вывод ls для поиска совпадений.


ls | findstr "foo"


Вы также можете искать несколько слов одновременно, использовать подстановочные знаки для соответствия чему угодно и использовать флаг /R для передачи основных регулярных выражений.


ls | findstr /R ba[a-z]\.txt


Хотя, если вы хотите искать явно , включая пробел, вам нужно использовать флаг /C::


ls | findstr /C:"foo"


Если вы привыкли к командной строке Linux и не хотите запоминать новую команду, вы можете настроить “grep” как алиас findstr, что позволит вам сохранить мышечную память.


new-alias grep findstr


Использование Select-String для поиска в PowerShell
Другой собственный метод, который предлагает PowerShell, – это команда Select-String, которая делает то же самое, что и findstr, но является командой PowerShell, а не исполняемым файлом Windows.

Это означает, что она лучше работает в сценариях PowerShell, и, что особенно важно, возвращает результат в виде объекта, который может быть красиво распечатан PowerShell.

Его также легче использовать в командной строке, поскольку с ним работает завершение вкладки PowerShell.

Он работает так же, как findstr, и может принимать подстановочные знаки и регулярные выражения.


ls | Select-String foo
ls | Select-String -Pattern <regexPattern>


Вы можете использовать Select-String для поиска текста внутри файлов, передав ему аргумент -Path. Вы также можете использовать его с вводом, передаваемым другими командами, например Get-Content.


Select-String -Path ".\foo.txt" -Pattern ba.*


Если вы хотите использовать его в командной строке, вы также можете присвоить ему псевдоним “grep” для быстрого доступа.


remove-alias grep
new-alias grep Select-String


👉 @i_linux
  • 👍 5
More from @i_linux
  1. Sep 11, 2026Горячие клавиши VirtualBox Основные ярлыки в VirtualBox F1: Отображает справку. Ctrl + D М…
  2. Sep 8, 2026Увеличение времени сессии SSH Бывает, что выполнение удаленно запущенной команды может зат…
  3. Sep 1, 2026Регулярные выражение для поиска IP адресов Ниже представлены регулярные выражения, которые…
  4. Aug 26, 2026Старое доброе видео, кто помнит? Веселенький денек у сисадмина... Системный администратор…
  5. Aug 17, 2026ChopChopGo Это инструмент для просмотра журналов Linux наподобие chainsaw и Hayabusa, отли…
  6. Aug 8, 2026До / После 📲 Мы в MAX 👉@i_linux
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →