Mögliches Duplikat:
Wie kann ich iconv dazu bringen, die Eingabedatei durch die konvertierte Ausgabe zu ersetzen?
Ich verbinde mich häufig mit Amazon ec2 über deren öffentliche DNS-Namen
(ec2-12-34-56-78.compute-1.amazonaws.com
) und damit meine known_hosts
Datei wird mit viel ec2
überfordert Einträge, die ich nie wieder verwenden werde.
Ich weiß, dass ich wahrscheinlich sed -i
verwenden könnte an Ort und Stelle bearbeiten, aber ich wollte grep
verwenden und so habe ich das gemacht:
grep -v ec2 ~/.ssh/known_hosts > ~/.ssh/known_hosts
Bleibt known_hosts
als leere Datei. Wenn ja:
grep -v ec2 ~/.ssh/known_hosts > ~/.ssh/tmp
mv ~/.ssh/tmp ~/.ssh/known_hosts
dann sind die Dinge in Ordnung, aber ich bin verwirrt, warum das Lesen und Schreiben in dieselbe Datei leer bleibt und ob es einen Weg gibt, dies zu umgehen, wenn grep
verwendet wird , cat
usw.
Akzeptierte Antwort:
Es gibt ein Dienstprogramm namens sponge
das ist ein Teil der moreutils-Suite. Es wurde genau für diesen Zweck hergestellt.
grep -v ec2 ~/.ssh/known_hosts | sponge ~/.ssh/known_hosts