Es gibt viele Möglichkeiten, diese Katze zu häuten!
Um eine bestimmte Zeichenfolge zu ersetzen, ^old^new^extra
übernehmen Sie Ihren vorherigen Befehl, ersetzen Sie old
mit new
und hängen Sie ihn an extra
. Sie können so früh aufhören, wie Sie möchten; zB ^old
wird durch old
die leere Zeichenkette ersetzt und die leere Zeichenkette angehängt (im Wesentlichen löschen old
und nichts mehr tun).
1. ^diff^checkout
2. ^cat^rm
Besonders nützliche Variante davon:
for i in `seq 1 10`; do echo something complicated; done
# inspect the output to see if it looks right
^echo
Um ein bestimmtes Wort zu ersetzen, können Sie !m:n-p
auf Wörter n
durch p
den Befehl verweisen m
(verwenden Sie negative Zahlen, um vom aktuellen Befehl zurück zu zählen). Sie können den -p
Teil weglassen , um auf ein einzelnes Wort zu verweisen, und den :m-p
Teil weglassen , um auf einen gesamten Befehl zu verweisen. Sonderformen !!
für !-1
, !$
für das letzte Wort des vorherigen Befehls und !*
für die Argumente (außer Wort 0
) des vorherigen Befehls sind sehr praktisch.
1. !!:0 checkout !!:2-
2. rm !*
Ich benutze oft beide; zsh ist hier besonders schön, da das Drücken der Tabulatortaste das kryptische Material erweitert, um sicherzustellen, dass Sie es richtig verstanden haben.
Es gibt auch so viele Möglichkeiten, dies mit der Zeilenbearbeitung zu tun. Lesen Sie die Tastenkombinationen Ihrer Shell.