✍️ 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 (
-ive-i.bakseç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çenek | Açıklama |
|---|---|
| -i | Yerinde düzenleme — dosyayı doğrudan kaydeder |
| -i.bak | Düzenleme öncesi .bak uzantılı yedek oluşturur |
| -n | Otomatik çıktı bastırmayı engeller |
| -e | Aynı çağrıda birden fazla komut çalıştırır |
| -r veya -E | Geliş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
| İşlem | Komut | Açıklama |
|---|---|---|
| Belirli satırı sil | sed '2d' log.txt | 2. satırı siler |
| Desene göre satır sil | sed '/hata/d' log.txt | "hata" içeren satırları siler |
| Satır aralığını yazdır | sed -n '1,3p' log.txt | 1–3. satırları yazdırır |
| Boş satırları sil | sed '/^$/d' veriler.txt | Tü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
| Özellik | sed | grep | awk |
|---|---|---|---|
| Amaç | Düzenleme | Arama | Veri 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örev | Komut | Açıklama |
|---|---|---|
| Arama ve değiştirme | sed 's/eski/yeni/' | İlk eşleşmeyi değiştirir |
| Global değiştirme | sed 's/eski/yeni/g' | Tüm eşleşmeleri değiştirir |
| Yerinde düzenleme | sed -i 's/x/y/' | Dosyayı doğrudan düzenler |
| Satır silme | sed '2d' | 2. satırı kaldırır |
| Desenle silme | sed '/hata/d' | “hata” geçen satırları siler |
| Boş satırları kaldır | sed '/^$/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. 🚀