在 Linux 中,我可以做類似的事情history | grep abc
,這只會顯示以「abc」開頭的命令。在cmder中使用Windows,我可以使用命令調出命令歷史記錄history
,但我找不到透過命令的前幾個字母來過濾它的方法。似乎沒有與|
和等價的字眼grep
。
答案1
cat %CMDER_ROOT%\config\.history | grep abc
在Cmder::Cmder
sessions中history
有一個dokey巨集。巨集的輸出無法使用管道傳遞,|
但您可以使用作為 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
更多。而且沒有線路長度限制