![]() |
![]() |
EnderUNIX İpucuArkadaşıma gönder , Ana Sayfa[ Shell Scripting ] "Shell Script Ile Duzenli Ifadelerin (Regex) Kullanilmasi" - Gökhan ALKAN - (2008-09-04 10:07:45) [4269] ip.txt dosyasinin icerigi asagidaki gibi olsun. # cat ip.txt 192.168.1.1 gokhan alkan enderunix 192.168.7. 12 1 kastamonu # Bu dosyanin icinden basit olarak ip adres bilgisi formatina uyan satirlarin belirlenmesi icin ; # cat ip.txt | while read line do if [[ "$line" =~ "^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}" ]] then echo "${BASH_REMATCH}" fi done # Yukaridaki betik calistirildiginda ciktisi asagidaki gibi olacaktir. 192.168.1.1 Burada duzenli ifade kullanilmasini saglayan "[[" "]]" dir. "BASH_REMATCH" ilede eslesen butun ifade bulunur. Istege gore eslesen butun bolum degil sadece belli bir bolumude alinabilir. Bunun icin () kullanilmaktadir. Orengin ayni ip.txt dosyasi icin # cat ip.txt | while read line do if [[ "$line" =~ "^([0-9]{1,3})\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}" ]] then echo "${BASH_REMATCH[1]}" fi done # Ciktisi asagidaki gibi olacaktir. 192 Eger birden fazla () kullanilirsa BASH_REMATCH[2] gibi degerler alacaktir. Arkadaşıma gönder , Ana Sayfa |
|