GNU/Linux >> Linux の 問題 >  >> Linux

Linuxで上書きせずに同じファイルを読み書きしますか?

この質問にはすでに回答があります :9年前に閉鎖。

重複の可能性:
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

Linux
  1. Sshを介して複数のサーバーで同じスクリプトを実行しますか?

  2. Linux のファイル権限 – 読み取り/書き込み/実行

  3. CでのLinuxクリップボードの読み取り/書き込み

  1. パスワードなしで、パスワードで保護された zip ファイル内のテキスト ファイルを読み取ることは可能ですか?

  2. SSH - ~/.ssh/config ファイルに -t コマンドを含める方法

  3. Linux:ファイルを入力と出力として同時に使用する方法は?

  1. findコマンドを使用してLinux上のファイルとディレクトリを検索します

  2. Stdoutに出力し、同時にGrepをファイルに出力しますか?

  3. ファイル記述子が開かれ、一度だけ読み取られるのはなぜですか?