В Linux я могу сделать что-то вроде history | grep abc
и это выведет только команды, начинающиеся с 'abc'. В Windows в cmder я могу вывести историю команд с помощью команды history
, но я не могу найти способ отфильтровать ее по первым нескольким буквам команды. Кажется, эквивалента и |
нет grep
.
решение1
cat %CMDER_ROOT%\config\.history | grep abc
В Cmder::Cmder
сеансах history
есть макрос doskey. Вывод макроса не может быть передан с помощью конвейера, |
но вы можете использовать команду, которая является содержимым макроса doskey.
решение2
Грубый аналог grep
в Windows — find
и findstr
. Так что просто запустите history 2>&1 | find "abc"
илиhistory 2>&1 | findstr abc
Разница между ними в том, что:
find
поддерживает Unicode (UTF-16), но не поддерживает регулярные выражения, а такжеfindstr
поддерживает регулярные выражения, но не Unicodefind
требует заключения строки поиска в кавычки, ноfindstr
не делает этого
Почему существуют программы FIND и FINDSTR с не связанными между собой наборами функций?
В PowerShell будет лучшее решение:Выбрать строку. Он поддерживает все find
и findstr
даже больше. И у него нет ограничений по длине строки