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