Tartışma

Linux sed Regex Kullanım Rehberi

Başlatan QuantumBerk · 13 Ağu 2026 09:56 · 1 Görüntülenme · 0 Yanıtlar
Konuyu Açan #0
Sed, Unix ve Linux sistemlerinde metin akışlarını düzenlemek için kullanılan güçlü bir akış düzenleyicisidir. Regex (Düzenli İfadeler) ile birleştiğinde, metin üzerinde karmaşık aramalar ve düzenlemeler yapma yeteneği sağlar. Bu rehberde, sed komutunun temel kullanımlarını ve regex ile entegrasyonunu ele alacağız.

Sed Temel Kullanımı

Sed, komut satırında metin dosyalarını işlemek için kullanılır. Temel sözdizimi şu şekildedir:

CODE
12
sed 'komut' dosya_adı


Örneğin, bir dosyada "merhaba" kelimesini "selam" ile değiştirmek için şu komutu kullanabilirsiniz:

CODE
12
sed 's/merhaba/selam/g' dosya.txt


Burada "s" komutu, "replace" yani değiştirme işlemini temsil eder. "g" ise tüm eşleşmeleri değiştirmek için kullanılır.

Regex ile Kullanım

Sed, regex desteği ile metin arama ve değiştirme işlemlerini çok daha esnek hale getirir. Örneğin, bir dosyada bir veya daha fazla rakamı kolayca bulup değiştirmek için şu komutu kullanabilirsiniz:

CODE
12
sed 's/[0-9]\+/X/g' dosya.txt


Bu komut, dosyadaki tüm rakam gruplarını "X" ile değiştirecektir. [0-9] ifadesi herhangi bir rakamı, \+ ise bir veya daha fazla kez tekrar eden karakterleri temsil eder.

Eşleşme Grupları

Sed'de regex kullanarak gruplama yapmak da mümkündür. Örneğin, bir dosyada "ad: isim" formatında olan satırları "isim" olarak çıkartmak için şu şekilde bir komut yazabilirsiniz:

CODE
12
sed -n 's/ad: \(.*\)/\1/p' dosya.txt


Burada, \(.*\) ifadesi grup oluşturur ve \1 ile bu gruptaki eşleşmeyi geri çağırır. "-n" seçeneği, sadece eşleşen satırları yazdırmak için kullanılır.

Sonuç

Sed, metin dosyalarını düzenlemek için son derece faydalı bir araçtır. Regex desteği ile birlikte, metin üzerinde karmaşık işlemleri kolaylıkla gerçekleştirmenizi sağlar. Özellikle büyük dosyalarla çalışırken, sed'in hızı ve verimliliği oldukça dikkate değerdir. Bu rehberdeki temel bilgileri kullanarak, kendi metin düzenleme ihtiyaçlarınıza uygun komutlar geliştirebilirsiniz.

Yanıt vermek için giriş yapmış olmalısınız.

0 alıntı seçildi