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 foo-bar@domain.tld
> Connects succesfully
Manchmal mache ich auch einen Tippfehler:
ssh bar-foo@domain.tld
> Permission denied
Da ich mich auf die Historie verlasse, wird dieser Tippfehler mehrmals dupliziert:
cat .zsh_history | grep bar-foo@domain.tld
> : 1510301683:0;ssh bar-foo@domain.tld
> : 1511166682:0;ssh bar-foo@domain.tld
> : 1511193552:0;ssh bar-foo@domain.tld
> : 1512730972:0;ssh bar-foo@domain.tld
> : 1516368993:0;ssh bar-foo@domain.tld
> : 1516802690:0;ssh bar-foo@domain.tld
> : 1519633368:0;ssh bar-foo@domain.tld
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.
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}'