EnderUNIX Team.


EnderUNIX İpucu

Arkadaşıma gönder , Ana Sayfa

[ Shell Scripting ]

"Shell Script Ile Duzenli Ifadelerin (Regex) Kullanilmasi" - Gökhan ALKAN - (2008-09-04 10:07:45)   [3934]

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