1. Düzenli İfadeler (Regex) Nedir?

Düzenli ifadeler, metinleri aramak ve üzerinde işlem yapmak için kullanılan güçlü bir araçtır. Özellikle büyük dosyalarla çalışırken belirli bir desenle eşleşen metinleri bulmak, değiştirmek veya analiz etmek için kullanılırlar. Bash script yazarken grep, sed, ve awk komutları düzenli ifadeler ile metin işleme konusunda çok güçlü seçenekler sunar.

Düzenli ifadeler, belirli kalıplarla eşleşen metinleri bulmak ve değiştirmek için sembol ve karakterlerin birleşiminden oluşan bir yazım kuralıdır. Örneğin, belirli bir kelimeyi veya karakter grubunu metin dosyasında bulmak ve bu kısımla ilgili işlem yapmak için düzenli ifadeler kullanılır.

2. grep ile Metin Arama

grep komutu, belirli bir düzenli ifadeye veya kalıba sahip satırları bulmak için kullanılır. grep, dosyalar içerisinde hızlı ve etkili bir şekilde arama yapmanızı sağlar.

Örnek Kullanımlar

  • Dosyada belirli bir kelimeyi aramak:
grep "aranan_kelime" dosya.txt

Büyük/küçük harfe duyarsız arama (-i parametresi):

grep -i "aranan_kelime" dosya.txt

Dosyadaki belirli bir desenle eşleşen tüm satırları listeleme:

grep "^a.*e$" dosya.txt
  • Bu komut, “a” harfi ile başlayan ve “e” harfi ile biten tüm satırları bulacaktır.

3. sed ile Metin Düzenleme

sed (stream editor), dosyalar veya giriş verileri üzerinde doğrudan düzenleme yapmak için kullanılır. sed, özellikle dosyadaki belirli bir metni değiştirmek veya belirli desenlere uygun satırları çıkarmak gibi işlemler için kullanılır.

Belirli bir kelimeyi başka bir kelimeyle değiştirme:

sed 's/eskikelime/yeniKelime/' dosya.txt

Bu komut, dosya.txt dosyasındaki ilk bulduğu “eskikelime” ifadesini “yeniKelime” ile değiştirir.

Dosyadaki her eşleşmeyi değiştirme (g bayrağı):

sed 's/eskikelime/yeniKelime/g' dosya.txt

g bayrağı kullanılarak tüm satırlarda ve tüm eşleşmelerde değiştirme yapılır.

sed '/silinecekSatirDeseni/d' dosya.txt

Bu komut, “silinecekSatirDeseni” ile eşleşen tüm satırları siler.

4. awk ile Metin Verilerini İşleme

awk, verileri satır ve sütun formatında işlemeye olanak tanır ve genellikle yapılandırılmış metin verileriyle çalışmak için kullanılır. Bu komut, belirli bir formata uygun verileri analiz edebilir ve üzerinde işlem yapabilir.

Örnek Kullanımlar

  • Dosyadaki her satırın ikinci sütununu ekrana yazdırma:
awk '{print $2}' dosya.txt

Bu komut, her satırda bulunan ikinci sütunu ($2) ekrana yazdırır.

Belirli bir koşulu sağlayan satırları seçme:

awk '$3 > 100 {print $1, $3}' dosya.txt

Bu komut, üçüncü sütunu 100’den büyük olan satırları bulur ve bu satırların birinci ve üçüncü sütunlarını ekrana yazdırır.

5. Düzenli İfadeler ile Sık Kullanılan Semboller

Düzenli ifadeler içerisinde kullanılan bazı özel karakterler:

  • . : Herhangi bir karakter ile eşleşir.
  • * : Önceki karakterin sıfır veya daha fazla tekrarı ile eşleşir.
  • ^ : Satır başını belirtir.
  • $ : Satır sonunu belirtir.
  • [abc] : Köşeli parantez içerisindeki karakterlerden herhangi biri ile eşleşir.
  • [a-z] : Belirtilen aralıkta bir karakterle eşleşir.

6. grep, sed, ve awk Birlikte Kullanımı

Bash script yazarken bu üç komutu birlikte kullanmak oldukça yaygındır. Bu şekilde daha karmaşık metin işleme görevleri yerine getirilebilir.

Örnek: Log Dosyasını Filtreleme ve Analiz

Bir sistem log dosyasını analiz ettiğinizi düşünelim:

grep "ERROR" /var/log/syslog | awk '{print $1, $2, $5}' | sed 's/ERROR/KRİTİK HATA/'

Bu komut zincirinde şu işlemler yapılmaktadır:

  1. grep "ERROR": Log dosyasındaki “ERROR” içeren satırları bulur.
  2. awk '{print $1, $2, $5}': Bu satırların birinci, ikinci ve beşinci sütunlarını yazdırır.
  3. sed 's/ERROR/KRİTİK HATA/': “ERROR” ifadesini “KRİTİK HATA” olarak değiştirir.

7. Bash Script Örneği: Metin Manipülasyonu

Aşağıda, bir metin dosyasındaki belirli bir deseni bulup değiştiren ve ardından bu dosyadaki belirli satırları ekrana yazdıran bir Bash script örneği bulunmaktadır:

#!/bin/bash

# Değişken tanımlama
dosya="ornek.txt"

# "hata" kelimesini "uyarı" ile değiştir
sed -i 's/hata/uyarı/g' $dosya

# "uyarı" kelimesi içeren satırları ekrana yazdır
grep "uyarı" $dosya

Bu script şu işlemleri yapmaktadır:

  1. sed kullanarak ornek.txt dosyasındaki “hata” kelimesini “uyarı” ile değiştirir (-i parametresi dosyayı yerinde düzenler).
  2. Ardından grep komutu ile dosyada “uyarı” içeren tüm satırları ekrana yazdırır.

Bash script yazarken metin manipülasyonu, sistem yönetimi ve veri işleme için kritik öneme sahiptir. grep, sed, ve awk gibi araçlar, metin dosyalarında arama yapmak, düzenlemek ve analiz etmek için mükemmel çözümler sunar. Düzenli ifadelerin gücü sayesinde, karmaşık metin manipülasyonu görevleri kısa ve etkili Bash script’leri ile gerçekleştirilebilir.

Bu beceriler, özellikle büyük veri kümeleri üzerinde analiz yaparken, sistem yönetimi sırasında belirli logları takip ederken ya da dosya işleme işlemlerini otomatikleştirirken son derece faydalıdır. Bu komutları öğrenerek ve birleştirerek, güçlü ve esnek Bash script’leri oluşturabilirsiniz.

Tepkiniz ne oldu ?

Heyecanlı
0
Mutlu
0
Aşık
0
Emin değilim
0
Şapşal
0

İlginizi Çekebilir

Bir cevap bırakın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Daha fazlası:Geliştirme