Автор темы
#1
Sed ile veri çıktısını işleme
[/list]
Sed ile çıktı işleme, temel kavramlar ve pratik örneklerle bu şekilde başlar. Kullandığınız alan ve hedef çıktı hangi tipteyse (log, CSV, yapılandırma dosyası), spesifik dönüştürme komutlarını daha ayrıntılı konuşabiliriz. Siz hangi tür çıktıyı ve hangi dönüşümü hedefliyorsunuz?
Kısaca özetlemek gerekirse, sed akışta verilen metin üzerinde değişiklik yapmanızı sağlayan komut satırı aracıdır. Özellikle log dosyaları, konfigürasyon çıktıları veya süreç çıktıları üzerinde hızlı dönüştürmeler için idealdir. Aşağıda temel kavramlar ve pratik örnekler üzerinden konuyu toparlıyorum.
- Temel yaklaşım: Sed bir akış içinden (file veya stdin) okur, düzenlemeleri uygular ve çıktıyı yine akışa verir. -e ile birden çok ifade eklenebilir; -i ile dosyada yerinde değişiklik yapılabilir.
- Kapsam: Basit değiştirmelerden karmaşık desen tabanlı dönüştürmelere kadar geniş bir yelpazede kullanılır. Örneğin satır başı, satır sonu, belirli alanlar üzerinden değişiklikler mümkündür.
- Desen tabanlı işlemler: /pattern/ ile bulunan satırlarda değişiklik yapabilir, d, g komutlarıyla değiştirme/çıkarma işlemleri yapılabilir.
- Alan odaklı dönüştürme: -s /regex/replacement/ ile tek satırda kısa dönüşümler yapılabilir; -n ile yalnızca istenen çıktıyı yazdırmak için kullanılır.
- Kaynaklar ve güvenlik: Büyük dosyalarla çalışırken bellek üzerindeki etkisini düşünmek gerekir; akışa dayalı işlemler bellek dostudur, ancak karmaşık ifadeler dikkat ister.
- Örnek 1: Dosyadaki tüm “ERROR” kelimelerini “WARNING” ile değiştirmek
КОД1
sed 's/ERROR/WARNING/g' logfile.log
- Örnek 2: Belirli bir kalıbı içeren satırları silmek
КОД1
sed '/Critical/d' system.log
- Örnek 3: Dosya içeriğini değiştirmeden ek olarak yeni satır eklemek
КОД1
sed 's/$/ // sonuna açıklama/' data.txt
- Örnek 4: Satır numaralarıyla yeni içerik eklemek
КОД1
sed = data.txt | sed 'N;s/\n/ /'
- Örnek 5: Dosyada yerinde değişiklik yapma
КОД1
sed -i 's/localhost/127.0.0.1/g' config.ini
Notlar:
[list]
Karmaşık dönüşümler için birden çok ifade birleştirilebilir: sed -e '...'' -e '...'.
-n ile sadece istenen satırları yazdırma kontrolü sağlayabilirsiniz: sed -n 'p' dosya.
Sistem günlüklerinde zaman damgası veya belirli alanlar üzerinde dönüşüm yapmak için düzenli ifadeler kritik öneme sahiptir. Basit örnekler güvenli bir şekilde test edilmeli ve orijinal dosya yedeklendiğinde dönüşüm kapsamı netleşir.
[/list]
Sed ile çıktı işleme, temel kavramlar ve pratik örneklerle bu şekilde başlar. Kullandığınız alan ve hedef çıktı hangi tipteyse (log, CSV, yapılandırma dosyası), spesifik dönüştürme komutlarını daha ayrıntılı konuşabiliriz. Siz hangi tür çıktıyı ve hangi dönüşümü hedefliyorsunuz?
