sed ne demek?

sed (Stream EDitor), Unix tabanlı sistemlerde metin dosyalarını düzenlemek için kullanılan güçlü bir komut satırı aracıdır. Dosyaları doğrudan düzenleme yerine, girdi olarak alınan metnin düzenlenmiş halini standart çıktıya (ekrana veya başka bir dosyaya) yazar. Bu da orijinal dosyanızı koruma avantajını sağlar.

sed'in temel özellikleri:

  • Akış tabanlı: Metni satır satır işler. Her satır üzerinde belirtilen düzenlemeler yapılır ve sonuç ekrana yazdırılır.
  • Düzenleme komutları: Metni değiştirmek, silmek, eklemek, aramak, yer değiştirmek gibi çeşitli işlemler için komutlar sağlar.
  • Düzenli ifadeler (regex): Karmaşık arama ve değiştirme işlemleri için destekler. Bu, belirli desenlere göre metinleri bulup değiştirmenizi kolaylaştırır.
  • Adresleme: Belirli satır veya satır aralıklarını hedef alarak düzenlemeleri sadece o satırlarda yapmanıza olanak tanır. Örneğin, sadece 5. satırı düzenleyebilir veya 10. satırdan 20. satıra kadar olan satırları düzenleyebilirsiniz.
  • In-place düzenleme: -i seçeneğiyle orijinal dosyayı doğrudan düzenleyebilirsiniz, ancak bunu dikkatli kullanmanız önemlidir çünkü geri alma seçeneğiniz olmayacaktır.

sed komutunun genel yapısı:

sed [option] 'komut' [dosya]
  • [option]: sed'in davranışını değiştiren seçenekler (örneğin, -i in-place düzenleme için, -n sadece eşleşen satırları yazdırmak için).
  • 'komut': Yapılacak düzenlemeyi belirten komut (örneğin, s/eski/yeni/g eski metni yeni metinle değiştirmek için).
  • [dosya]: Düzenlenecek dosya. Dosya belirtilmezse standart giriş kullanılır.

Örnekler:

  • Bir satırı değiştirmek: sed 's/eski/yeni/' dosya.txt dosya.txt dosyasındaki ilk eşleşen "eski" metnini "yeni" ile değiştirir.
  • Tüm satırları değiştirmek: sed 's/eski/yeni/g' dosya.txt dosya.txt dosyasındaki tüm "eski" metinlerini "yeni" ile değiştirir (g bayrağı tüm eşleşmeleri değiştirir).
  • Belirli bir satırı değiştirmek: sed '2s/eski/yeni/' dosya.txt dosya.txt dosyasındaki 2. satırdaki "eski" metnini "yeni" ile değiştirir.
  • Satırları silmek: sed '2d' dosya.txt dosya.txt dosyasındaki 2. satırı siler.
  • Metin eklemek: sed '2i eklenen metin' dosya.txt dosya.txt dosyasının 2. satırının önüne "eklenen metin"i ekler.
  • Düzenli ifadeler kullanarak değiştirme: sed 's/[0-9]\{3\}/XXX/' dosya.txt dosya.txt dosyasındaki üç basamaklı sayıları "XXX" ile değiştirir.

Önemli Notlar:

  • sed komutları tek tırnak içinde ('...') yazılmalıdır.
  • sed'in güçlü ama karmaşık bir araç olduğunu unutmayın. Yanlış kullanım, dosyalarınıza zarar verebilir. Önemli dosyalarda denemeden önce yedek almanız önerilir.
  • sed'in birçok seçeneği ve komutu vardır. Daha ayrıntılı bilgi için man sed komutunu kullanabilirsiniz.

sed, metin işleme görevleri için son derece kullanışlı bir araçtır. Komutların güçlü ve esnek yapısı sayesinde karmaşık metin düzenleme işlemlerini kolayca gerçekleştirebilirsiniz. Ancak, başlangıçta biraz karmaşık gelebilir, bu nedenle pratik yaparak ve örnekleri inceleyerek kendinizi geliştirebilirsiniz.