この質問にはすでに回答があります :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