Meine Geschichte ist mit einigen bestimmten Zeilen, die Tippfehler und ähnliches enthalten, "verschmutzt". Zum Beispiel: Ich muss oft auf einen bestimmten Server wie folgt ssh:
ssh [email protected]
> Connects succesfully
Manchmal mache ich auch einen Tippfehler:
ssh [email protected]
> Permission denied
Da ich mich auf die Historie verlasse, wird dieser Tippfehler mehrmals dupliziert:
cat .zsh_history | grep [email protected]
> : 1510301683:0;ssh [email protected]
> : 1511166682:0;ssh [email protected]
> : 1511193552:0;ssh [email protected]
> : 1512730972:0;ssh [email protected]
> : 1516368993:0;ssh [email protected]
> : 1516802690:0;ssh [email protected]
> : 1519633368:0;ssh [email protected]
Gibt es eine einfache Möglichkeit, meine Geschichte allein durch die Ergebnisse der Bereinigung? grep
-Befehl? (Oder gibt es vielleicht eine andere, cleverere Lösung?)
Aktualisieren:
Hinweis: Ich suche keine Möglichkeit, eine Zeile zu löschen x
aus der geschichte; Ich weiß, dass es viele Artikel gibt, die das abdecken. Ich suche einfach nach einer (einfachen?) Methode, um alle Zeilen zu löschen, die String enthalten y
.
command-line
bash
zsh
history
Giel Berkers
quelle
quelle
x
. Die verknüpfte Frage ist, wie nach Zeilennummern gelöscht werden soll.grep
Verlegenheit ist in a Kommentar von * mivk , die die benötigten Befehle ausgeben (ohne sie tatsächlich auszuführen):history | grep XYZ | grep -v grep | tac | awk '{print "history -d", $1}'
Antworten:
Mit diesem Befehl können Sie alle Zeilen mit der Zeichenfolge im Verlauf ordnungsgemäß löschen:
quelle