[Linux-programlama] Re: bash i unutmuşuz biraz :)

---------

[Linux-programlama] Re: bash i unutmuşuz biraz :)

From: What you get is Not what you see <wyginwys_at_gmail.com>
Date: Thu, 9 Oct 2008 16:10:15 +0300
Message-ID: <47e7b1180810090610l3165b980q3fad67da32e03ac9@mail.gmail.com>

2008/10/9 Rüştü Derici <rustuderici_at_gmail.com>:
> Elinize saglık ..kullanılamasa dahi çok güzel bir referans script
> olmuş....kullanabilirsem de sizi bilgilendiririm gerçeten bu tür işler
> için python kullanma isteğim artıyor böyle örnekleri gördükçe..
> sevgiler,
> Rüştü
>

Benim tercihim bashten yana olurdu. O yuzden sorunuza kucuk bir sure
kafa yordum.

>>>
>>> #!/bin/bash
>>> for i in $(ls *.info);
>>> do
>>>
>>> while read line
>>> do
>>> value=$(echo $line|cut -d: -f2 )
>>> # echo $value
>>> rustu=$(`echo $rustu+$value`)
>>> done < $i
>>>
>>> done
>>>
>>> gibi bir script ile yaptığımda $value sanırım\n ibarelerini de alıyor
>>> alt alta bir sonuç çıkıyor gerisini zaten düşünemiyorum bu adımı
>>> atlayamadığım için
>>> Tavsiye ve yardımlarınız için şimdiden teşekkürler..
>>> Sevgiler,
Eger $value da istediginiz deger donuyorsa \n veya \r\n leri tr veya
sed (veya aklima gelmeyen baska
bir sey) ile silebilirsiniz. Alt alta cikmasi da bana garip geldi bu arada.
$value degerlerini bulmak icin awki kullanmak da baska bir yol.
awk -F ":" ' {print $2} ' da ikinci alani basar. Ama sizin
dosyalarinizda anladigim kadariyla ayni
pattern lar tekrar ediyor. Yani
Total Players-------:1024
Total Agents--------:3
Game Merge Condition:1
Total Game Played---:22347435
Theoretical Max-----:65471
Merger Played-------:15956087 -->( 71.40% )
NoMerger Played-----:6391348 -->( 28.60% )
seklinde birden fazla blok var bir dosyada. Bu durumda sizin regex
kullanmaniz lazim (awk ile birlikte).

mesela bir .awk dosyasi soyle olabilir

$0 ~ /Total Players/ {
array1[index]=$2
}
$0 ~ /Total Agentss/ {
array2[index]=$2
}
...

seklinde olabilir. Awk da multidimensional array de kurulabiliyordu degil mi?
O zaman birden cok array yerine tek bir multidim array ile de
sorununuzu cozebilirsiniz.
Yapmaniz gereken awk in END kisminda bu array (i ya da arrayleri) tek
satir halinde ekrana basmak.
_______________________________________________
Linux-programlama mailing list
Linux-programlama_at_liste.linux.org.tr
http://liste.linux.org.tr/mailman/listinfo/linux-programlama
Received on Thu 09 Oct 2008 - 15:28:19 EEST

---------

Bu arsiv hypermail 2.2.0 tarafindan uretilmistir.