Linux’ta sed ile Dosya İçinde Satır Nasıl Silinir

Son doğrulama: Eylül 2026 · Ubuntu 24.04 test sunucusunda denendi

Hızlı çözüm

Sed ile satır silme için sed -i.bak 'desen'd dosya komutunu kullanın; desen yerine boş satır (/^$/), satır numarası (3) ya da içinde geçen bir kelime (/kelime/) yazılır, -i.bak ise silmeden önce dosyanın yedeğini otomatik alır.

  1. Boş satırları silin: sed -i.bak '/^$/d' dosya.txt
  2. Belirli bir satırı silin (örn. 3. satır): sed -i.bak '3d' dosya.txt
  3. İçinde bir kelime geçen satırları silin: sed -i.bak '/kelime/d' dosya.txt
Panel Yok — komut satırından yapılır (VPS/VDS yönetimsizdir)
Sistem Ubuntu 22.04/24.04, Debian 12, AlmaLinux 9 (GNU sed önceden kurulu gelir)
Yetki Dosya üzerinde yazma izni olan kullanıcı; sistem dosyaları için root
Narhost ürünü VPS Sunucu, VDS Sunucu

Başlamadan önce

  • Düzenleyeceğiniz dosyanın tam yolunu ve o dosyada yazma izniniz olduğunu doğrulayın.
  • grep 'desen' dosya ile önce hangi satırların silineceğini önizleyin; sed komutu çalıştırıldığında geri sorulmadan siler.
  • Sistem dosyalarında (/etc altında) çalışıyorsanız değişiklikten önce ayrı bir yedek klasörüne kopya alın.
  • Tek tırnak (') kullanın; kabuk, çift tırnak içindeki $ ve * gibi karakterleri kendi yorumlayabilir.

Sed ile Satır Silme Ne İşe Yarar

Sed (stream editor), bir dosyayı satır satır okuyup üzerinde arama-değiştirme yapan bir Linux komut satırı aracıdır. Sed ile satır silme, dosyayı bir metin düzenleyicide açmadan; boş satırları temizlemek, belirli bir satır numarasını kaldırmak ya da içinde belirli bir kelime geçen satırları çıkarmak için kullanılır. Log dosyalarını sadeleştirmek, yapılandırma dosyasındaki eski bir satırı kaldırmak ya da toplu metin işleme betiklerinde sık kullanılan bir yöntemdir.

-i bayrağı olmadan sed, sonucu yalnızca ekrana (standart çıktıya) yazar, dosyayı değiştirmez; -i eklenince dosyanın kendisi güncellenir. Bu kartta üç temel silme deseni ve her birinin gerçek çıktısı gösterilir.

sed ile satır silme — dosyayı inceleme, yedekli düzenleme ve sonucu doğrulama adımları
Önce dosyayı incele, yedekli düzenle, sonucu karşılaştır, yedeği sakla.

Sed ile Satır Silme Adımları

  1. Önce dosyanın mevcut hâlini görün:
    cat -A ornek.txt

    Test sunucusunda alınan gerçek çıktı: satir1 giris$ / $ (boş satır) / satir3 eski-surum notu$ / $ (boş satır) / satir5 son$. Satır sonundaki $ işareti cat -A‘nın gösterdiği satır sonu karakteridir, dosyada yoktur.

  2. Boş satırları silin:
    sed -i.bak '/^$/d' ornek.txt

    Test sunucusunda alınan gerçek çıktı, komut sonrası cat ornek.txt: satir1 giris / satir3 eski-surum notu / satir5 son. İki boş satır kaldırıldı, ornek.txt.bak adında değişmemiş orijinal dosya oluştu.

  3. Belirli bir satır numarasını silin (örneğin 2. satır):
    sed -i.bak '2d' ornek.txt

    Test sunucusunda alınan gerçek çıktı: yukarıdaki üç satırlık dosyada 2. satır (satir3 eski-surum notu) silindi, sonuç satir1 giris / satir5 son oldu.

  4. İçinde belirli bir kelime geçen satırları silin:
    sed -i.bak '/eski-surum/d' ornek.txt

    Test sunucusunda alınan gerçek çıktı: “eski-surum” geçen satir3 eski-surum notu satırı silindi, sonuç yine satir1 giris / satir5 son oldu. Aynı mantıkla /^kelime/d bir kelimeyle başlayan, /kelime$/d bir kelimeyle biten satırları siler; söz dizimi GNU sed’in resmi man sayfasında tanımlıdır.

Dikkat

sed -i komutunu yedeksiz (uzantı vermeden) çalıştırırsanız silinen satırlar geri alınamaz; bu yüzden her zaman sed -i.bak gibi bir uzantıyla çalışın, komut dosyanın yanına dosya.bak adında değişmemiş bir kopya bırakır. Yanlış bir silme yaptıysanız mv dosya.bak dosya ile eski hâline dönebilirsiniz. /etc altındaki bir yapılandırma dosyasında çalışıyorsanız bu yedek tek geri dönüş yolunuzdur.

Doğrulama

Sonuç

cat dosya ile silmek istediğiniz satırların gerçekten kalktığını, kalması gereken satırların yerinde durduğunu gözle kontrol edin. Ardından diff dosya.bak dosya çalıştırın; çıktıda yalnızca sildiğiniz satırlar < işaretiyle görünmelidir, başka fark yoksa işlem doğru tamamlanmıştır.

Hâlâ çözülmediyse

  • “sed: -e expression #1, char 2: unknown command” hatası alıyorsunuz. Tek tırnak yerine çift tırnak kullanıldığında kabuk $ veya ! gibi karakterleri kendi yorumlamış olabilir; deseni tek tırnak içine alın.
  • Hiçbir satır silinmedi ama hata da yok. Desen dosyadaki metinle birebir eşleşmiyordur; büyük/küçük harf duyarlılığını kaldırmak için desenin sonuna I ekleyin: /kelime/Id.
  • Yanlışlıkla önemli satırları sildiniz.-i.bak ile çalıştıysanız mv dosya.bak dosya ile geri dönün; yedeksiz çalıştıysanız ve dosya bir Narhost yedeğinde varsa yedekten geri yükleme kartına bakın.
  • Değişikliği çok sayıda dosyada tekrarlamanız gerekiyor. Aynı komutu birden fazla dosyada uygulamadan önce dosya arama kartındakifind yöntemiyle dosya listesini önce gözden geçirin, sonra find . -name '*.conf' -exec sed -i.bak '/kelime/d' {} \; ile toplu uygulayın.

Narhost desteği

Talebe şunları ekleyin: sunucu IP adresiniz, üzerinde çalıştığınız dosyanın tam yolu, çalıştırdığınız sed komutu ve aldığınız hata mesajı.

Destek talebi aç

Sıkça sorulan sorular

Sed ile satır silme işlemi geri alınabilir mi?

Yalnızca -i.bak gibi bir yedek uzantısıyla çalıştıysanız; bu durumda mv dosya.bak dosya ile eski hâline dönersiniz. Yedeksiz -i kullanıldıysa değişiklik geri alınamaz.

sed -i ile sed ‘desen’ > yeni_dosya arasındaki fark nedir?

sed -i dosyanın kendisini değiştirir. Yönlendirme (>) ise orijinal dosyaya dokunmadan sonucu yeni bir dosyaya yazar; orijinal dosyayı korumak isterseniz bu ikinci yöntem daha güvenlidir.

Birden fazla deseni tek komutla silebilir miyim?

Evet, sed -i.bak -e '/desen1/d' -e '/desen2/d' dosya ya da sed -i.bak '/desen1/d;/desen2/d' dosya ile aynı anda birden fazla desen silinebilir.

Bu makale sorununuzu çözdü mü?

Çözemediniz mi?

Teknik ekibimiz sunucu tarafındaki ayarları sizin için kontrol edebilir. Destek talebinizde alan adınızı ve aldığınız hata metnini paylaşmanız süreci hızlandırır.

Etiketler: sed

İlgili çözümler