Я ищу PowerShell эквивалент grep --file=filename
. Если вы не знаете grep
, filename - это текстовый файл, в котором каждая строка имеет шаблон регулярного выражения, который вы хотите сопоставить.
Может быть, я упускаю что-то очевидное, но Select-String
, похоже, нет этой опции.
powershell
grep
Fordio
источник
источник
источник
findstr
работает так же, какgrep
в Linux.Select-String
отлично подходит для работы с объектами, но иногда вы просто хотите сопоставить строки.findstr
это не родной для PowerShell, а командной строки.Я не знаком с grep, но с Select-String вы можете сделать:
Вы также можете сделать это с Get-Content:
источник
dir *.cs -Recurse | sls "TODO" | select -Unique "Path"
. Спасибо за отличный указатель.Поэтому я нашел довольно хороший ответ по этой ссылке: https://www.thomasmaurer.ch/2011/03/powershell-search-for-string-or-grep-for-powershell/
Но по сути это так:
Это дает возможность поиска файлов в каталоге (* или вы можете просто указать файл) и поиск содержимого файла в одной строке PowerShell, очень похожий на grep. Вывод будет похож на:
источник
На этот вопрос уже есть ответ, но я просто хочу добавить, что в Windows есть подсистема Windows для Linux WSL .
Так, например, если вы хотите проверить, есть ли у вас служба с именем Elasicsearch, которая находится в состоянии выполнения, вы можете сделать что-то похожее на фрагмент ниже в powershell
net start | grep Elasticsearch
источник
У меня была такая же проблема при попытке найти текст в файлах с PowerShell. Я использовал следующее - чтобы оставаться как можно ближе к среде Linux.
Надеюсь, это кому-нибудь поможет:
PowerShell:
Объяснение:
Да, это работает также:
источник
Верный. PowerShell не является клоном набора инструментов * nix shell.
Однако не сложно построить что-то подобное самостоятельно:
источник
Select-String -Pattern somestring
намного чищеМожет быть?
источник