tgoop.com/srv_admin_linux/590
Create:
Last Update:
Last Update:
Как выполнить 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
BY Админские угодья

Share with your friend now:
tgoop.com/srv_admin_linux/590
