SED ( Stream Editor ) ve Gözlüklü Maymun İkilemi

figusa_1330348245183Linux’un kuvvetli yanlarından biri de metin düzenleyicileridir. Linux kullanan herkes en az bir kere vi ya da vim metin editörleri ile işlem yapmıştır. Yine güçlü ve kullanışlı metin düzenleyicisi olan sed biraz arka planda kalan bir metin düzenleyicisidir. sed bir dosyadan veya girdiden bilgi okur ve okuduğu bilgileri kullanıcının belirlediği düzene sokarak ekrana yazar.

Çok laf kalabalığı yapmadan örneklendirirsek :

sed 's/maymun/gözlüklü maymun/g' dosya

Yukardaki terminal kodu dosya isimli dosyada bulunan maymun kelimelerini gözlüklü maymun kelimesine çevirir. Buradaki s işleci bir karakter kümesini başka bir karakter kümesine değiştireceğimizi belirtir. sondaki g işleci ise dosyanın tamamında arama yapılmasını sağlar. Aksi durumda satırlarda ilk bulunan karakter kümesi değiştirilecek ve diğerlerine dokunulmayacaktır.

sed yapısı gereği çıktıyı direk ekrana basar.

Eğer çıktı bir dosyaya yazılmak istenirse;

sed 's/maymun/gözlüklü maymun/g' dosya > dosya2

şeklinde kullanılabilir.

Not : dosya2 parametresi yerine dosya kullanılırsa boş sonuç döner ve dosya içeriği silinir.

Aynı anda birden çok değişiklik yapmak için – e tag’ı kullanılabilir.

Örneğin :

sed -e 's/maymun/gözlüklü maymun/g' -e 's/kamyon/damperli kamyon/g' dosya > dosya2

sed komutlarında regex ( düzenli ifade ) kullanılabilir. Dolayısıyla regex komutları için kullanılan özel karakterleri içeren karakter seti düzenlemek istediğimizde, bu karakterlerin önünde ters slash ( \ ) kullanmak gerekir.

Regex karakterleri şunlardır :

.*[]^$\&

Örnek kullanım :

sed 's/\[G\. Maymun\]/[Gözlüklü Maymun]/g' dosya

Yukardaki kullanım dosyada bulunan tüm [G. Maymun] harf dizisini [Gözlüklü Maymun] harf dizisine çevirir.

Örnek bir regex kullanımı için şuna bakabiliriz :

sed 's/[0-9]/Hep/g' dosya

Yukardaki kod rakam gördüğü yerleri Hep sözcüğü ile değiştirir.

Örneğin :

3 Gözlüklü Maymun 5 Gözlüklü Maymun
8 Gözlüklü Maymun

satırları

Hep Gözlüklü Maymun Hep Gözlüklü Maymun
Hep Gözlüklü Maymun

şeklini alır.

Regex konusu sayfalarca uzatılabilir. Zaten konu bu yazının konusu değil. Tadında bırakalım. :)

sed ‘in kaynak dosyası özeliğine değinip bitirelim.

Çok satırlı bir sed komutunuz varsa sed komutlarınızı bir dosyaya yazıp dosyayı çalıştırabilirsiniz.

örnek sedkomutdosyası.sed içeriği :

s/maymun/gözlüklü maymun/g
s/kamyon/damperli kamyon/g
s/sap/armudun sapı/g
s/çöp/üzümün çöpü/g

yukardaki dosyayı

sed -f sedkomutdosyası.sed dosya

komutuyla çalıştırabiliriz.

Ya da dosyamızı şöyle değiştirerek terminalden çalışmasını da sağlayabiliriz.

#!/usr/bin/sed -f
# sedkomutdosyasi.sed dosyasi
s/maymun/gözlüklü maymun/g
s/kamyon/damperli kamyon/g
s/sap/armudun sapı/g
s/çöp/üzümün çöpü/g

Yukardaki dosyayı sedkomutdosyasi.sed ismi ile kaydedip

chmod u+x sedkomutdosyasi.sed

ile yetki verdikten sonra

ubuntu için

"./sedkomutdosyasi.sed dosya"

komutu ile çalıştırabilirsiniz.

Yeter be, içimiz dışımız maymun oldu.

Bir Cevap Yazın

Your email will not be published. Name and Email fields are required.

Şu HTML etiketlerini ve özelliklerini kullanabilirsiniz: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>