Ich habe einen Befehl wie dies in meiner Geschichte (Linux-Bash-Shell):Substitution von historischem Shell-Befehl
1119 for dir in `ls -d MyMod.*`; \
do echo $dir; \
svn copy --parents $dir $REPO/tags/MyMod_20101115/$dir -m"MyMod tag for 20101115"; \
done
wo 1119 die Befehlsnummer ist.
(Beachten Sie, dass der Befehl in Wirklichkeit auf einer Linie alle ist und enthält keine \ Zeichen. Ich habe die, die gerade in der es auf die Seite passen, lassen sich hier)
Gibt es ein Einzeiler Sie können das oben von 20101115 bis 20101118 ändern (ein Tag des heutigen Datums darstellt). Natürlich könnten wir ein Skript dafür erstellen.
Dies ist keine Frage über SVN. Das obige Beispiel ist ein SVN-Beispiel, aber der Zweck der Frage besteht darin, zu wissen, wie man die Substitution vornimmt, zumal es in der History ist und ein for verwendet. Wir haben versucht, echo! 1119 mit sed zu mischen und bekommen nicht das gewünschte Ergebnis.
Ich glaube, Sie suchen, wie bestimmte Zeile zu extrahieren aus die ~/.bash_history? – ajreal
Ändern Sie die Zeile im Verlauf mit Ersetzung und führen Sie sie aus. Die Ausführung kann mit Xargs erfolgen, obwohl ich die Befehlsnummer entfernen müsste. Effektiv versuche ich^$ OLDDATE^$ NEWDATE, aber nicht für den letzten Befehl. Überrascht ist das schwieriger als ich es mir vorgestellt habe. – CashCow