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