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.
sed -i.bak '/^$/d' dosya.txtsed -i.bak '3d' dosya.txtsed -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
grep 'desen' dosya ile önce hangi satırların silineceğini önizleyin; sed komutu çalıştırıldığında geri sorulmadan siler./etc altında) çalışıyorsanız değişiklikten önce ayrı bir yedek klasörüne kopya alın.') kullanın; kabuk, çift tırnak içindeki $ ve * gibi karakterleri kendi yorumlayabilir.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.

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.
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.
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.
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.
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.
$ veya ! gibi karakterleri kendi yorumlamış olabilir; deseni tek tırnak içine alın.I ekleyin: /kelime/Id.-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.find 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ı.
Sonraki adımlar
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 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.
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ü?
Geri bildiriminiz için teşekkürler.
Çö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.