Skip to main content

✍️ Linux’ta sed Komutu Ustalaşma Rehberi: Hızlı Metin Düzenleme

sed (Stream Editor), Linux’ta metinleri düzenlemek ve dönüştürmek için kullanılan güçlü bir komut satırı aracıdır.
Bir dosyayı açmadan, satır satır okuyarak arama, değiştirme, silme veya ekleme işlemleri yapmanıza olanak tanır.
Bu özellikleriyle özellikle otomasyon betikleri ve yapılandırma dosyalarının toplu düzenlenmesi için idealdir.


💡 Bu Rehberde Ne Öğreneceksiniz

  • sed komutunun yapısını ve sözdizimini
  • Arama ve değiştirme işlemlerini (s/eski/yeni/)
  • Yerinde düzenleme (-i ve -i.bak seçenekleri)
  • Satır silme (d), yazdırma (p) ve desen eşleştirme işlemlerini
  • Gelişmiş sed kullanımını: düzenli ifadeler, aralık işlemleri, yedekleme

⚙️ 1. sed Komutunun Temelleri

Temel Sözdizimi

sed [seçenekler] 'komut' dosya

[seçenekler]: Komutun davranışını belirler (-i, -n gibi).

'komut': Uygulanacak düzenleme işlemi (s, d, p vb.).

dosya: İşlenecek dosyanın yoludur.

Örnek:


sed 's/Linux/Unix/' system.txt

Bu komut, system.txt dosyasındaki her satırda ilk "Linux" kelimesini "Unix" ile değiştirir.


🧰 2. En Sık Kullanılan sed Seçenekleri

SeçenekAçıklama
-iYerinde düzenleme — dosyayı doğrudan kaydeder
-i.bakDüzenleme öncesi .bak uzantılı yedek oluşturur
-nOtomatik çıktı bastırmayı engeller
-eAynı çağrıda birden fazla komut çalıştırır
-r veya -EGelişmiş (extended) regex desteği sağlar

🔍 3. Arama ve Değiştirme İşlemleri

Temel Kullanım (s Komutu)


sed 's/eski/yeni/' dosya.txt

Satırda bulunan ilk "eski" kelimesini "yeni" ile değiştirir.

Satırdaki Tüm Eşleşmeleri Değiştirme


sed 's/Linux/GNU\/Linux/g' metin.txt

g bayrağı tüm satır boyunca eşleşmeleri değiştirir.

Büyük-Küçük Harf Duyarsız Değiştirme


sed 's/admin/user/I' config.txt

“Admin”, “ADMIN” veya “admin” fark etmeksizin değiştirme yapar.


💾 4. Yerinde Düzenleme (In-place Editing)

Kalıcı Düzenleme


sed -i 's/eski_domain/rabisu.cloud/g' vhost.conf

Dosyayı doğrudan değiştirir ve kaydeder.

Yedekleme ile Düzenleme


sed -i.yedek 's/test_ortami/canli_sistem/g' env.yaml

env.yaml dosyasını düzenler, eski versiyonu env.yaml.yedek olarak saklar.


✂️ 5. Satır Tabanlı İşlemler

İşlemKomutAçıklama
Belirli satırı silsed '2d' log.txt2. satırı siler
Desene göre satır silsed '/hata/d' log.txt"hata" içeren satırları siler
Satır aralığını yazdırsed -n '1,3p' log.txt1–3. satırları yazdırır
Boş satırları silsed '/^$/d' veriler.txtTüm boş satırları kaldırır

🧩 6. Gelişmiş sed Kullanımları

Satır Başında veya Sonunda Desen Eşleştirme


sed 's/^root/yonetici/' passwd.txt # Satır başında
sed 's/$/\//' klasorler.txt # Satır sonunda

Belirli Satır Numarasında Değiştirme


sed '4 s/url/link/' config.json

Sadece 4. satırdaki ilk “url” ifadesini değiştirir.

Satır Aralığına Göre İşlem


sed '1,5 s/Linux/Unix/' file.txt

1–5 arası satırlarda “Linux” → “Unix” dönüşümü yapar.

Tab Karakterlerini Boşlukla Değiştirme


sed 's/\t/ /g' tablo.txt

⚙️ 7. sed, grep ve awk Arasındaki Farklar

Özelliksedgrepawk
AmaçDüzenlemeAramaVeri işleme
Yerinde düzenleme
Regex desteği
Çoklu işlem
Raporlama yeteneği

🧠 8. Performans İpuçları

-n kullanın: Gereksiz çıktıları bastırarak işlem süresini azaltır.

Komutları birleştirin: -e ile tek satırda çoklu işlem yapın.

Pipe (|) kullanın: Dosya oluşturmak yerine akış bazlı işlem yapın.

Büyük dosyalarda -i kullanmayın: Önce test edin, sonra değiştirin.

Alternatifleri bilin: awk veya perl bazı durumlarda daha hızlıdır.


❓ Sıkça Sorulan Sorular (SSS)

1. sed komutu neden dosyayı değiştirmiyor?

sed varsayılan olarak sonucu ekrana yazar. Kalıcı değişiklik için -i parametresi gerekir.

2. sed’de neden tek tırnak (‘) kullanılır?

Shell karakterlerinin ($, !, ) yanlış yorumlanmasını önler.

3. sed, grep ve awk farkı nedir?

sed düzenler, grep arar, awk işler ve raporlar.

4. sed ile sekmeleri boşluğa çevirebilir miyim?

Evet:

bash

sed 's/\t/ /g' dosya.txt

5. sed ile boş satırları kaldırmak mümkün mü?

Evet:

bash

sed '/^$/d' file.txt


🧾 Komut Özeti

GörevKomutAçıklama
Arama ve değiştirmesed 's/eski/yeni/'İlk eşleşmeyi değiştirir
Global değiştirmesed 's/eski/yeni/g'Tüm eşleşmeleri değiştirir
Yerinde düzenlemesed -i 's/x/y/'Dosyayı doğrudan düzenler
Satır silmesed '2d'2. satırı kaldırır
Desenle silmesed '/hata/d'“hata” geçen satırları siler
Boş satırları kaldırsed '/^$/d'Tüm boş satırları siler

🌟 Sonuç

Linux’ta sed komutu, basit bir metin aracı değil — sistem yöneticilerinin, geliştiricilerin ve DevOps mühendislerinin gizli silahıdır. Büyük dosyalarda hızlı düzenleme, otomatik konfigürasyon ve verimli log analizi için vazgeçilmezdir.

💡 Bu komutları Rabisu Bulut Sunucularınızda test ederek sed’in gücünü deneyimleyin. Zaman kazanın, insan hatasını azaltın, sistemi profesyonelce yönetin. 🚀