Tuesday, March 1, 2011

awk ile kolon değiştirmek

Bu script datanın 3.cü kolonundaki 2 değerini 12 ile değiştiririr.

awk 'BEGIN{OFS=FS="/"}$3==2{$3=12}{print}' dosya1 > dosya2

Tuesday, December 7, 2010

gun - karakter saymak

Gün döngülerinde günü 1 karakterden 2 karaktere çıkarmak için;
Aşağıdaki script karakterin uzunluğuna bakar, 1 ise soluna 0 ekler.


for (( yest = 1 ; yest <= $maxgun ; yest++ )) ; do
dun=$yest
uzunluk=`expr length $dun`
if [ $uzunluk -lt 2 ] ; then
dun=0${dun}
fi
echo $dun
done

Friday, February 19, 2010

Shell Script For dongusu

Shell scriptte For dongusu içinde

for gun in 01 02 03 04 05 06 07 08 09 10 ; do
...
done

yazılabildigi gibi bu donguyu daha kısa olarak
for
for (( gun = 01 ; gun <= 10 ; gun++ )) ; do
...
done

yazmak mümkün.

Thursday, February 4, 2010

Ayın Son gününü bulmak

Yıl ve ay bilgisi parametre olarak verilen tarihin son gününü bulmak için;

cal $yil $ay | grep . | fmt -1 | tail -1

yazmak yeterli.

Monday, August 3, 2009

sed'e değişken aktarmak, if'in çoklu kullanımı, tar'ın farklı kullanımı

Aşağıdaki script farklı dizinlerde oldtarih datası olup olmadığını kontrol eder, eğer varsa listesini bir dosyaya
yazar ve bu dosyadaki dosya isimlerinin tar 'ını alır. Dosya sayısı bir-kaç binden fazlaysa tar almak için tar -T opsiyonu kullanmak iyidir. Aksi durumda "argument list too long" hatası alınır.

for uydutip in EOS RESIM MPEF NOAA ; do
oldtarih=20090729
ls $uydutip|grep $oldtarih >/dev/null 2>&1
if [ $? -eq 0 ] ; then
ls $uydutip|grep $oldtarih|awk '{print $0}'|sed "s:^.:$uydutip\/&:g" >$fulpat/loglar/$uydutip.list
if [ "$uydutip" = "EOS" -o "$uydutip" = "MPEF" -o "$uydutip" = "NOAA" ] ; then
tar -czvf $uydutip.$oldtarih.tar.gz -T $fulpat/loglar/$uydutip.list
else
tar -cvf $uydutip.$oldtarih.tar -T $fulpat/loglar/$uydutip.list
fi
else
echo "$uydutip - $oldtarih tarihli data YOK ..--"
fi
done

Thursday, June 11, 2009

kolon toplamının bulunması

linux dosya sisteminde dosyaların toplam boyutu aşağıdaki gibi bulunabilir;

ls -l |awk '{print $5}'|awk '{sum=sum+$NF;print sum}'

Monday, June 8, 2009

Bir veri satırında istediğimiz kolona sabit eklemek;

data verisinin 5.ci kolonuna | (pipe) ekler;

sed 's/^.\{5\}/&|/' data > data.new