Sie können diesen Befehl verwenden, um alle Zeilen mit der Zeichenfolge im Verlauf ordnungsgemäß zu löschen:
sed -i '/string/d' .bash_history
Meine Geschichte ist mit einigen bestimmten Zeilen, die Typos haben, "verschmutzt". Zum Beispiel: Ich muss oft ssh auf einen bestimmten Server wie folgt:
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 rein durch die Ergebnisse des grep
Befehls zu bereinigen ? (oder vielleicht gibt es eine andere, schlauere Lösung?)
Aktualisieren:
Bitte beachten Sie: Ich suche keine Möglichkeit, die Zeile x
aus der Historie zu löschen . Ich weiß, dass es viele Artikel gibt, die das abdecken. Ich suche einfach nach einer (einfachen?) Methode, um alle Zeilen zu löschen, die Zeichenfolgen enthalten y
.
Sie können diesen Befehl verwenden, um alle Zeilen mit der Zeichenfolge im Verlauf ordnungsgemäß zu löschen:
sed -i '/string/d' .bash_history