在 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
更多。并且它没有行长限制