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, March 1, 2011
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
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.
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.
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
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}'
ls -l |awk '{print $5}'|awk '{sum=sum+$NF;print sum}'
Subscribe to:
Posts (Atom)
