cmder를 사용하여 Windows에서 명령 기록을 필터링하는 방법이 있습니까?

cmder를 사용하여 Windows에서 명령 기록을 필터링하는 방법이 있습니까?

Linux에서는 다음과 같은 작업을 수행하면 history | grep abc'abc'로 시작하는 명령만 표시됩니다. Windows의 cmder를 사용하면 명령을 사용하여 명령 기록을 불러올 수 있지만 history명령의 처음 몇 글자로 필터링하는 방법을 찾을 수 없습니다. |및 에 해당하는 것은 없는 것 같습니다 grep.

답변1

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

Cmder::Cmder세션 에는 historydoskey 매크로가 있습니다. 매크로의 출력은 파이프를 사용하여 전달할 수 없지만 |doskey 매크로의 내용인 명령을 사용할 수 있습니다.

참조: https://github.com/cmderdev/cmder/issues/1770

답변2

grepWindows 의 대략적인 아날로그 는 find및 입니다 findstr. 그러니 그냥 실행 history 2>&1 | find "abc"하거나history 2>&1 | findstr abc

차이점은 다음과 같습니다.

  • find유니코드(UTF-16)는 지원하지만 정규 표현식은 지원하지 않으며 findstr정규 표현식은 지원하지만 유니코드는 지원하지 않습니다.
  • find검색 문자열 주위에 따옴표가 필요하지만 findstr그렇지 않습니다.

관련 없는 기능 세트가 있는 FIND 및 FINDSTR 프로그램이 모두 있는 이유는 무엇입니까?

PowerShell에는 더 나은 솔루션이 있습니다.선택 문자열. 그것은 모든 것을 지원 find하고 findstr그 이상을 지원합니다. 그리고 줄 길이 제한이 없습니다.

관련 정보