Есть ли способ отфильтровать историю команд в Windows с помощью cmder?

Есть ли способ отфильтровать историю команд в Windows с помощью cmder?

В Linux я могу сделать что-то вроде history | grep abcи это выведет только команды, начинающиеся с 'abc'. В Windows в cmder я могу вывести историю команд с помощью команды history, но я не могу найти способ отфильтровать ее по первым нескольким буквам команды. Кажется, эквивалента и |нет grep.

решение1

cat %CMDER_ROOT%\config\.history | grep abc

В Cmder::Cmderсеансах historyесть макрос doskey. Вывод макроса не может быть передан с помощью конвейера, |но вы можете использовать команду, которая является содержимым макроса doskey.

Ссылка: https://github.com/cmderdev/cmder/issues/1770

решение2

Грубый аналог grepв Windows — findи findstr. Так что просто запустите history 2>&1 | find "abc"илиhistory 2>&1 | findstr abc

Разница между ними в том, что:

  • findподдерживает Unicode (UTF-16), но не поддерживает регулярные выражения, а также findstrподдерживает регулярные выражения, но не Unicode
  • findтребует заключения строки поиска в кавычки, но findstrне делает этого

Почему существуют программы FIND и FINDSTR с не связанными между собой наборами функций?

В PowerShell будет лучшее решение:Выбрать строку. Он поддерживает все findи findstrдаже больше. И у него нет ограничений по длине строки

Связанный контент