GNU/Linux >> Belajar Linux >  >> Linux

Baca Dan Tulis Ke File Yang Sama Di Linux Tanpa Menimpanya??

Pertanyaan ini sudah memiliki jawaban di sini :Tutup 9 tahun yang lalu.

Kemungkinan Duplikat:
Bagaimana saya bisa membuat iconv mengganti file input dengan output yang dikonversi?

Saya sering terhubung ke amazon ec2 menggunakan nama DNS publiknya
(ec2-12-34-56-78.compute-1.amazonaws.com ) dan karena ini known_hosts saya file kewalahan dengan banyak ec2 entri yang tidak akan pernah saya gunakan lagi.

Saya tahu saya mungkin bisa menggunakan sed -i untuk mengedit di tempat tetapi saya ingin menggunakan grep dan jadi saya melakukan ini:

grep -v ec2 ~/.ssh/known_hosts > ~/.ssh/known_hosts

Tinggal known_hosts sebagai file kosong. Jika saya melakukannya:

grep -v ec2 ~/.ssh/known_hosts > ~/.ssh/tmp
mv ~/.ssh/tmp ~/.ssh/known_hosts

maka semuanya baik-baik saja, tetapi saya bingung mengapa membaca dan menulis ke file yang sama membiarkannya kosong, dan jika ada cara untuk mengatasi ini saat menggunakan grep , cat , dll.

Jawaban yang Diterima:

Ada utilitas bernama sponge itu adalah bagian dari moreutils suite. Itu dibuat untuk tujuan yang tepat ini.

grep -v ec2 ~/.ssh/known_hosts | sponge ~/.ssh/known_hosts

Linux
  1. Temukan file dan direktori di Linux dengan perintah find

  2. Baca dan tulis data dari mana saja dengan pengalihan di terminal Linux

  3. Memindahkan file di Linux tanpa mv

  1. Mengapa File Descriptor Dibuka Dan Hanya Dibaca Sekali?

  2. Izin File di Linux – Baca/Tulis/Jalankan

  3. UNIX / Linux:Panduan Pemula untuk Izin File dan Direktori ( umask, chmod, baca, tulis, jalankan)

  1. Salin dan tempel di baris perintah Linux dengan xclip

  2. Apa perintah untuk menyalin, membaca, dan menghapus file di linux

  3. SSH - Cara memasukkan perintah -t di file ~/.ssh/config