Ana bilgisayarlardan belirli bir satırı sil


1

hostsAna dizimdeki dosyadan belirli bir satırı silmek istiyorum :

~$ echo "193.10.1.1 localhost" >> hosts
~$ echo "127.0.0.1 localhost" >> hosts
~$ cat hosts
193.10.1.1 localhost
127.0.0.1 localhost
~$ sed '/127.0.0.1/d' hosts > hosts
~$ cat hosts

Ancak dosya emtpy. Ayırma satırını nasıl silerim ve sonucu tekrar dosyaya yazdırırım?

Yanıtlar:


4

Komut gerçekten çalıştırılmadan >önce, çıkış kullanarak yönlendirilirken dosya kesiliyor sed.

BSD sed

Kullanım sed -i .bak '/^127\.0\.0\.1[[:space:]]/d' hostsile yedekleme için, bir dosya yerinde düzenleyebilirsiniz yerine bakuzantısı veya sed -i '' [...]yedekleme oluşturmayı atlamak.

GNU sed

Kullanım sed -ibak '/^127\.0\.0\.1[[:space:]]/d' hostsile yedekleme için, bir dosya yerinde düzenleyebilirsiniz yerine bakuzantısı veya sed -i [...]yedekleme oluşturmayı atlamak.


Bunu manuel olarak da yapabilirsiniz, örneğin:

sed '/^127\.0\.0\.1[[:space:]]/d' hosts > hosts.new
cat hosts.new > hosts
rm hosts.new

Bu bir satır daha mv hosts.new hostsolsa da, dosyanın meta verilerini koruyacaktır hosts.


@Mighter Farklı bir sed olabilir. Argümanı atla -i, yani sed -i '/127.0.0.1/d' hosts
Daniel Beck
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.