Wie kann ich Verlaufseinträge in einem bestimmten Bereich abrufen / filtern?
Ich habe eine große Verlaufsdatei und benutze sie häufig
history | grep somecommand
Jetzt ist mein Gedächtnis ziemlich schlecht und ich möchte auch sehen, was ich sonst noch getan habe, als ich den Befehl eingegeben habe.
Im Moment mache ich das: Holen Sie sich Match, sagen wir 4992 somecommand
, dann mache ich
history | grep 49[0-9][0-9]
Das ist normalerweise gut genug, aber ich würde es viel lieber genauer machen, das heißt, Befehle von 4972 bis 5012 sehen, das sind 20 Befehle vorher und 20 nachher.
Ich frage mich, ob es einen einfacheren Weg gibt? Ich vermute, ein benutzerdefiniertes Skript ist in Ordnung, aber vielleicht hat jemand anderes schon einmal etwas Ähnliches getan.
Antworten:
Sie können festlegen
grep
, dass einige Zeilen rund um das Spiel gedruckt werden sollen, z. B. 3 vor und 5 nach:grep -C 4
ist äquivalent zugrep -A 4 -B 4
.Aber oft wissen Sie nicht genau, wie viele Zeilen Sie im Voraus möchten. Verwenden Sie also weniger und suchen Sie darin. Sie können die Suche sogar über die Befehlszeile starten:
quelle
less
! Ich wusste nicht, dass du das kannstVersuchen Sie fc:
... es ist ein eingebauter Bash-Befehl. (also versuche es nicht in tcsh:>)
quelle
Versuchen
history | grep -C20 '^4992'
quelle