Tato otázka zde již obsahuje odpovědi :Uzavřeno před 9 lety.
Linux
Možný duplikát:
Jak mohu nastavit, aby iconv nahradil vstupní soubor převedeným výstupem?
Často se připojuji k amazon ec2 pomocí jejich veřejných DNS jmen
(ec2-12-34-56-78.compute-1.amazonaws.com
) a kvůli tomu můj known_hosts
soubor je zahlcen spoustou ec2
položky, které už nikdy nepoužiji.
Vím, že bych pravděpodobně mohl použít sed -i
upravit na místě, ale chtěl jsem použít grep
a tak jsem udělal toto:
grep -v ec2 ~/.ssh/known_hosts > ~/.ssh/known_hosts
Zbývá known_hosts
jako prázdný soubor. Pokud ano:
grep -v ec2 ~/.ssh/known_hosts > ~/.ssh/tmp
mv ~/.ssh/tmp ~/.ssh/known_hosts
pak je vše v pořádku, ale jsem zmatený, proč čtení a zápis do stejného souboru nechává prázdné a jestli to lze nějak obejít pomocí grep
, cat
, atd.
Přijatá odpověď:
Existuje nástroj nazvaný sponge
který je součástí sady moreutils. Byl vyroben přesně pro tento účel.
grep -v ec2 ~/.ssh/known_hosts | sponge ~/.ssh/known_hosts