sed (Stream Editor) , metin dosyalarını komut satırından düzenlemek için kullanılan güçlü bir araçtır. Özellikle find/replace, satır silme, ekleme ve pattern değiştirme için kullanılır.
# Find/replace (sadece ilk eşleşme)
sed 's/aranan/yerine_gecen/' dosya.txt
# Find/replace (tüm eşleşmeler)
sed 's/aranan/yerine_gecen/g' dosya.txt
# Dosyaya yaz
sed -i 's/aranan/yerine_gecen/g' dosya.txt
# Büyük/küçük harf duyarsız
sed 's/aranan/yerine_gecen/gI' dosya.txt
# Satır silme
sed '5d' dosya.txt # 5. satırı sil
sed '5,10d' dosya.txt # 5-10. satırları sil
sed '/pattern/d' dosya.txt # pattern içeren satırları sil
# Satır ekleme
sed '5i\Yeni satır' dosya.txt # 5. satırdan önce ekle
sed '5a\Yeni satır' dosya.txt # 5. satırdan sonra ekle
# Satır aralığı
sed -n '5,10p' dosya.txt # 5-10. satırları göster
sed -n '/start/,/end/p' dosya.txt # pattern aralığı
# Regex ile değiştirme
sed 's/[0-9]\+/NUMBER/g' dosya.txt
# Birden fazla işlem
sed -e 's/a/b/g' -e 's/c/d/g' dosya.txt
# Host değiştirme
sed -i 's/127.0.0.1/192.168.1.100/g' /etc/hosts
# Port değiştirme
sed -i 's/port=8080/port=8443/g' config.ini
# Yorum satırlarını kaldır
sed -i '/^#/d' config.ini
# IP'leri gizle
sed 's/[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}/IP/g' access.log
# Tarih formatı değiştir
sed 's/\([0-9]\{2\}\)\/\([0-9]\{2\}\)\/\([0-9]\{4\}\)/\3-\1-\2/g' dosya.txt
# CSV'den JSON'a dönüştürme
sed 's/,/","/g; s/^/["/; s/$/"]/' dosya.csv
# HTML etiketlerini kaldır
sed 's/<[^>]*>//g' dosya.html
sed Temel Kullanım
bash# Find/replace (sadece ilk eşleşme)
sed 's/aranan/yerine_gecen/' dosya.txt
# Find/replace (tüm eşleşmeler)
sed 's/aranan/yerine_gecen/g' dosya.txt
# Dosyaya yaz
sed -i 's/aranan/yerine_gecen/g' dosya.txt
# Büyük/küçük harf duyarsız
sed 's/aranan/yerine_gecen/gI' dosya.txt
sed Gelişmiş Kullanım
bash# Satır silme
sed '5d' dosya.txt # 5. satırı sil
sed '5,10d' dosya.txt # 5-10. satırları sil
sed '/pattern/d' dosya.txt # pattern içeren satırları sil
# Satır ekleme
sed '5i\Yeni satır' dosya.txt # 5. satırdan önce ekle
sed '5a\Yeni satır' dosya.txt # 5. satırdan sonra ekle
# Satır aralığı
sed -n '5,10p' dosya.txt # 5-10. satırları göster
sed -n '/start/,/end/p' dosya.txt # pattern aralığı
# Regex ile değiştirme
sed 's/[0-9]\+/NUMBER/g' dosya.txt
# Birden fazla işlem
sed -e 's/a/b/g' -e 's/c/d/g' dosya.txt
Pratik Kullanım Senaryoları
1. Konfigürasyon Dosyası Düzenleme
bash# Host değiştirme
sed -i 's/127.0.0.1/192.168.1.100/g' /etc/hosts
# Port değiştirme
sed -i 's/port=8080/port=8443/g' config.ini
# Yorum satırlarını kaldır
sed -i '/^#/d' config.ini
2. Log Temizleme
bash# IP'leri gizle
sed 's/[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}/IP/g' access.log
# Tarih formatı değiştir
sed 's/\([0-9]\{2\}\)\/\([0-9]\{2\}\)\/\([0-9]\{4\}\)/\3-\1-\2/g' dosya.txt
3. Veri Dönüştürme
bash# CSV'den JSON'a dönüştürme
sed 's/,/","/g; s/^/["/; s/$/"]/' dosya.csv
# HTML etiketlerini kaldır
sed 's/<[^>]*>//g' dosya.html
🔒 Bu içeriği görmek için giriş yapın