Linux’taki sed (Stream Editor) komutu, metin işleme ve dosya değiştirme için kullanılan güçlü bir araçtır. Kullanıcılara dosyalardaki metni verimli bir şekilde arama, değiştirme, ekleme ve silme imkanı tanır, bu da onu otomasyon ve betik yazımı için hayati bir komut haline getirir. Bu kılavuzda, sed komutunu Linux’ta dosyaları güncellemek için nasıl kullanacağımızı pratik örneklerle keşfedeceğiz.

Neden Sed Komutunu Kullanmalısınız?

Sed komutu yaygın olarak şunlar için kullanılır:

Metin Değiştirme – Dosyalardaki kelimeleri, ifadeleri veya desenleri kolayca değiştirin.
Toplu İşleme – Betikler kullanarak birden fazla dosyayı aynı anda değiştirin.
Verimlilik – Büyük dosyaları açmadan hızlı bir şekilde işleyin.
Satır İçi Düzenleme – Dosyaları doğrudan komut satırından değiştirin.
Otomasyon – Tekrarlayan metin değişikliklerini yönetmek için betiklerde kullanılır.

Sed Komutunun Temel Söz Dizimi

Sed komutunun genel söz dizimi:

sed [OPTIONS] 's/old-text/new-text/g' filename

Nerede:

  • s – Yerine geçme anlamına gelir.
  • eski-metni – Değiştirilecek metin.
  • yeni-metni – Yerine geçecek metin.
  • g – (Küresel) Satırdaki tüm tekrarların değiştirilmesini sağlar.
  • dosya-adı – Değiştirilecek dosya.

Dosyaları Güncellemek için Sed Komutunu Nasıl Kullanılır

1. Bir Dosyada Bir Kelimeyi Değiştirin

Bir dosyada belirli bir kelimeyi değiştirmek için:

sed 's/Linux/Ubuntu/g' file.txt

Bu, file.txt dosyasındaki her satırda “Linux” kelimesinin ilk geçişini “Ubuntu” ile değiştirir.

2. Bir Dosyada Tüm Geçişleri Değiştirin

Bir dosyada bir kelimenin tüm geçişlerini küresel olarak değiştirmek için:

sed 's/Linux/Ubuntu/g' file.txt

g bayrağı, bir satırdaki her geçişin değiştirilmesini sağlar.

3. Dosyayı Yerinde Düzenleyin (Dosyayı Doğrudan Değiştirin)

Çıktıyı göstermeden dosyada doğrudan değişiklik yapmak için:

sed -i 's/Linux/Ubuntu/g' file.txt

-i seçeneği, yerinde düzenlemeyi etkinleştirir, yani orijinal dosya ayrı bir sürüm kaydetmeye gerek kalmadan değiştirilir.

4. Sadece Belirli Satırlarda Metni Değiştirin

Bir dosyada yalnızca belirli satırları değiştirmek için satır numarasını belirtin:

sed '3s/Linux/Ubuntu/' file.txt

Bu komut, “Linux” kelimesini sadece 3. satırda “Ubuntu” ile değiştirir.

5. Belirli Metni İçeren Bir Satırı Silin

Belirli bir kelimeyi içeren tüm satırları silmek için:

sed '/unwanted-text/d' file.txt

Bu, “istenmeyen-metni” içeren tüm satırları kaldırır.

6. Sayıya Göre Belirli Bir Satırı Silin

Belirli bir satırı silmek için:

sed '5d' file.txt

Bu, file.txt dosyasından 5. satırı siler.

7. Bir Satırdan Önce Metin Ekleyin

Belirli bir satır numarasından önce bir satır eklemek için:

sed '3iThis is a new line' file.txt

Bu, 3. satırdan önce “Bu yeni bir satırdır” ekler.

8. Bir Satırdan Sonra Metin Ekleyin

Belirli bir satır numarasından sonra bir satır eklemek için:

sed '3aThis is an appended line' file.txt

Bu, 3. satırdan sonra “Bu eklenmiş bir satırdır” ekler.

9. Birden Fazla Dosyada Bir Kelimeyi Değiştirin

Birden fazla dosyada aynı anda metni değiştirmek için:

sed -i 's/Linux/Ubuntu/g' *.txt

Bu komut, dizindeki tüm .txt dosyalarını değiştirir, “Linux” kelimesini “Ubuntu” ile değiştirir.

İleri Düzey Sed Komutları

1. Birden Fazla Sed Komutunu Birlikte Kullanın

Birden fazla değişikliği aynı anda gerçekleştirmek için:

sed -i -e 's/Linux/Ubuntu/g' -e 's/Server/Cloud/g' file.txt

Bu, file.txt dosyasında “Linux” kelimesini “Ubuntu” ile ve “Server” kelimesini “Cloud” ile değiştirir.

2. Sed’i Düzenli İfadelerle Kullanın

Bir dosyada sayıları değiştirmek için:

sed 's/[0-9]/#/g' file.txt

Bu, tüm rakamları # ile değiştirir.

3. Bir Dosyadan Belirli Satırları Çıkarın

5 ile 10 arasındaki satırları çıkarmak ve görüntülemek için:

sed -n '5,10p' file.txt

-n seçeneği, tüm dosyanın yazdırılmasını engeller, yalnızca 5-10 arasındaki satırları gösterir.

Sed Kullanımında En İyi Uygulamalar

  1. Her zaman dosyaları yedekleyin -i kullanmadan önce – Kazara veri kaybını önleyin.
  2. Düzenli ifadeleri kullanın – Karmaşık değişiklikler için güçlü desen eşleştirme.
  3. Değişiklikleri uygulamadan önce komutları test edin – Çıktıyı önizlemek için -i olmadan sed’i çalıştırın.
  4. Otomasyon için betikler kullanın – Toplu işleme için sed’i kabuk betiği ile birleştirin.

Sonuç

Sed komutu, Linux’taki dosyaları güncellemek için çok yönlü ve verimli bir araçtır. Metin değiştirmek, satır silmek veya içerik eklemek ihtiyacınız olsun, sed bu görevleri otomatikleştirip basitleştirebilir. Sed’i ustaca kullanarak, iş akışınızı geliştirebilir ve Linux yönetimi ve betik yazımında verimliliği artırabilirsiniz.