Unter Linux kann ich etwas wie und tun, history | grep abc
wodurch nur die Befehle angezeigt werden, die mit „abc“ beginnen. Unter Windows kann ich in cmder den Befehlsverlauf mit dem history
Befehl anzeigen, aber ich kann ihn nicht nach den ersten Buchstaben des Befehls filtern. Es scheint kein Äquivalent zu |
und zu geben grep
.
Antwort1
cat %CMDER_ROOT%\config\.history | grep abc
In Cmder::Cmder
Sitzungen history
befindet sich ein Doskey-Makro. Die Ausgabe eines Makros kann nicht über die Pipe weitergegeben werden |
, aber Sie können den Befehl verwenden, der den Inhalt des Doskey-Makros darstellt.
Referenziert: https://github.com/cmderdev/cmder/issues/1770
Antwort2
Das grobe Analogon zu grep
in Windows ist find
und findstr
. Führen Sie also einfach history 2>&1 | find "abc"
oder aushistory 2>&1 | findstr abc
Der Unterschied zwischen ihnen besteht darin, dass:
find
unterstützt Unicode (UTF-16), aber keine regulären Ausdrücke, undfindstr
unterstützt reguläre Ausdrücke, aber kein Unicodefind
erfordert Anführungszeichen um den Suchbegriff, aberfindstr
nicht
Warum gibt es sowohl FIND- als auch FINDSTR-Programme mit unabhängigen Funktionssätzen?
In PowerShell gibt es eine bessere Lösung:Select-String. Es unterstützt alles in find
und findstr
noch viel mehr. Und es hat keine Zeilenlängenbeschränkung