Giriş
sed kelimesi "stream editor" demek. Dosyadan okur ve bir şeyi değiştirerek ekrana basar. Eğer dosyayı değiştirmek istersek "-i" seçeneği ile çalıştırmak gerekir.
Birden Fazla Kademeli Sed
Noktalı virgül ile ayırırız.
Örnek
Şöyle yaparız. Burada her kademe teker teker uygulanıyor
sed 's/@/@A/g; s/\t/@B/g'
Örnek
Şöyle yaparız. Burada farklı olarak {...} kullanılıyor. Eşleşen kısım önce print ediliyor, daha sonra substitute ediliyor.
sed '/é/{p;s//e/g;}'
Cümle Başına Konulan İşlemler
s/ İle Substitute
Cümlenin başına s koyarız
Örnek - Replace With Empty String
Baştaki 0 ve : karakterlerinden kurtulmak için şöyle yaparız
sed 's/^[0:]*//' file
Elimizde şöyle bir dosya olsun
00:00:30 00:01:30 00:30:00 01:30:00 30:00:00
Çıktı olarak şunu alırız
30 1:30 30:00 1:30:00 30:00:00
Örnek - Capture
Şöyle yaparız. Burada ilk 80 karakter yakalanıyor ve \1\n ile çıktıya veriliyor.
echo "..." | sed -E 's/(.{80}[^ ]*) /\1\n/g'
y/ İle Substitute
Cümlenin başına y koyarız. Açıklaması şöyle
... if your replacements are all single-character replacements, the y command is more efficient
Örnek
Şöyle yaparız. Eşleşen kısım önce print ediliyor, daha sonra substitute ediliyor.
sed '/é/{p;y/é/e/;}'
Cümle Sonuna İşlemler
/d ile Delete
Cümlenin sonuna /d koyarız
/g ile Global
Normalde set satırdaki ilk eşleşmeyi bulup işini bitirince bir sonraki satıra geçer. Tüm eşleşmelerde iş yapsın istiyorsak cümlenin sonuna /g koyarız
/i ile Insensitive
Case insensitive olsun istersek cümlenin sonuna /i koyarız
/p ile Print
Cümlenin sonuna /p koyarız
Örnek
DEFINE ile başlayan satırları yazdırmak için şöyle yaparız. -n seçeneği sadece eşleşen satırları çıktı olarak verir
sed -n -e '/^DEFINE/p' *.*
/q ile Quit
Cümlenin sonuna /q koyarız
Komut Seçenekleri
-E seçeneği
Sanırım düzenli ifade olduğunu belirtir
Sadece eşleşen satırları çıktı olarak verir
Hiç yorum yok:
Yorum Gönder