この質問にはすでに回答があります :9年前に閉鎖。
Linux
重複の可能性:
iconvで入力ファイルを変換された出力に置き換えるにはどうすればよいですか?
パブリックDNS名を使用してAmazonec2に頻繁に接続します
(ec2-12-34-56-78.compute-1.amazonaws.com )そしてこのため私のknown_hosts ファイルは多くのec2に圧倒されます 二度と使用しないエントリ。
おそらくsed -iを使用できると思います その場で編集しますが、grepを使用したかった だから私はこれをしました:
grep -v ec2 ~/.ssh/known_hosts > ~/.ssh/known_hosts
それはknown_hostsを残します 空のファイルとして。私がそうする場合:
grep -v ec2 ~/.ssh/known_hosts > ~/.ssh/tmp
mv ~/.ssh/tmp ~/.ssh/known_hosts
そうすれば問題はありませんが、同じファイルの読み取りと書き込みで空白のままになる理由と、grepを使用するときにこれを回避する方法があるかどうかがわかりません。 、cat 、など。
承認された回答:
spongeというユーティリティがあります これはmoreutilsスイートの一部です。これはまさにこの目的のために作られました。
grep -v ec2 ~/.ssh/known_hosts | sponge ~/.ssh/known_hosts