Friday, November 9, 2018

tarih döngüsü, 2 satiri birlestirmek

for lokasyon in AFY  ANK  ANT  AYT  BLK  BRS  CMP  CP2  ERZ  GZT  HTY  IST  IZM  KRM  MGL  MOB  SMN  SRF  SVS  TRZ  ZNG ; do
    tarihe=$yil-01-01
    while [ "$tarihe" != $ymd ]; do
          tarihe=$(date -I -d "$tarihe + 1 day")
          tarih=`echo $tarihe|sed "s|-||g"`
          sayi=`ls -l /mgmarsiv/radar/$lokasyon/$tarih/*|awk '{print $5}'|awk '{top=top+$NF; print top/1024/1024/1024}'|tail -1`
          echo "$lokasyon: $tarih: $sayi" >> $targetPath/radar.$lokasyon.txt
    done
    boyut=`awk -F ":" '{print $3}' $targetPath/radar.$lokasyon.txt |grep [0-9]|awk '{print top=top+$NF; print top}'|tail -1`
    echo "$lokasyon:$boyut" >> $targetPath/radar.$yil.all.txt
done

Wednesday, May 2, 2018

awk ile her 7. kolonun başına ve sonuna tek tırnak eklemek

awk ile her 7. kolonun başına ve sonuna tek tırnak eklemek için;

awk -F "|" '{print $1"|"$2"|"$3"|"$4"|"$5"|"$6"|\047"$7"\047"}' AERO.GAMET.2018.txt > AERO.GAMET.201800.txt

Thursday, July 20, 2017

tarih alanlarında döngü

function indir
{
cd /home/arsiv
rm -r $hedefdizin/tmp/*
echo "$ilktarih - $sontarih arasindaki veriler Arsivden indirilecek"

itarih=`date -d $ilktarih +'%Y-%m-%d'`
starih=`date -d $sontarih +'%Y-%m-%d'`
farkgun=`echo $(($(($(date -d $starih "+%s") - $(date -d $itarih "+%s"))) / 86400))+1|bc`
echo "ilktyarih:$itarih   sontarih:$starih   indirilecek gun sayisi: $farkgun"
if [[ "$farkgun" -gt 31 ]] ; then
   echo "Bir seferde en fazla 31 gunluk veri cekebilirsiniz. Lutfen tarih araligini kucultun"
   exit 0
else

   for gunn in `seq -w 1 $farkgun` ; do
       rm -r $hedefdizin/tmp/*

       echo "gunn: $gunn"

      arsivtarih=`echo $itarih|sed "s|-||g"`
      echo $itarih
      arsivtarih=`echo $itarih|sed "s|-||g"`
      bsctarih=${arsivtarih:2:6}
      echo "$arsivtarih $bsctarih"
      dsmc q arc "$datadizin/eta_dream_$arsivtarih.tar.gz" > /dev/null
      if [ $? -eq 0 ] ; then
         echo "$datadizin/eta_dream_$arsivtarih.tar.gz verisi arsivde var. indirilecek++"
         dsmc ret "$datadizin/eta_dream_$arsivtarih.tar.gz" $hedefdizin/tmp/ -preservepath=none
         cd $hedefdizin/tmp/
         tar -zxvf $hedefdizin/tmp/eta_dream_$arsivtarih.tar.gz --strip-components 4
         mv $hedefdizin/tmp/BSC_DREAM8b* $hedefdizin
         cd
      else
         echo "$datadizin/eta_dream_$arsivtarih.tar.gz verisi arsivde yok--"
      fi

      itarih=$(date -I -d "$itarih + 1 day")
    done
fi

}

# MAIN SECTON #####################################

(($# !=2 )) && { echo "UYARI: 2 Tarih girilmelidir !!
usage: ./vericek.sc
example: ./vericek.sc 20170701 20170712" ; exit 1;}
ilktarih=$1
sontarih=$2

indir
echo "$ilktarih - $sontarih arasindaki verilerin indirilmesi Tamamlandi"

Thursday, July 13, 2017

sed, awk example

find . -name "*dakika*" |xargs -i cp {} tmp/.
cat tmp/*dakika* >> tmp/201501_1dk.txt

find . -name "L0*DAT" | xargs -i cat {} >> tmp/201505_L0.txt
find . -name "L1*DAT" | xargs -i cat {} >> tmp/201505_L1.txt
sed 's/17192/\n17192/g' L0150531.DAT|sed 's/[^0-9|.]*//g'
####
cat awos10dk_L1.dat| tr -cd '[[:alnum:].|]' > aa
sed 's/[A-Z]/\n/g' aa |grep "|2015|"|sed 's/[A-Z]//g' |sed 's/[a-z]//g' > cc
awk -F "|" '{print $1"|"$2"|"$3"|"$4"|"$5"|"$6"|"$7"|"$8"|"$9"|"$10"|"$11"|"$12"|"$13"|"$14"|"$15"|"$16"|"$17"|"$18"|"$19}' cc|sed 's/\[//g' |sed 's/\[//g' |sed 's/\]//g' > dd
######
cat awos1dk_L0.dat| tr -cd '[[:alnum:].|]' > aa

sed  's/[A-Z]/\n/g' aa|sed 's/[a-z]/\n/g' |sed  's/\[/\n/g'|sed 's/\]/\n/g'|grep "|2015|"|sed 's/[A-Z]//g' |sed 's/[a-z]//g'|sed  's/\[//g' |sed 's/\[//g'| sed 's/\]//g'| sed 's/\]//g' > bb

 awk 'BEGIN{OFS=FS="|"}NF==18{print $0}' bb > bb18
 awk 'BEGIN{OFS=FS="|"}NF==23'{print $0}' bb > bb23
 awk 'BEGIN{OFS=FS="|"}NF==20{print $0}' bb > bb20
 awk 'BEGIN{OFS=FS="|"}NF==24{print $0}' bb > bb24
 awk 'BEGIN{OFS=FS="|"}NF==21{print $0}' bb > bb21

cp  bb18 SYNOP.awos_eksikdata1dk_L0_18_sil.20150630.txt

awk 'BEGIN{OFS=FS="|"}length($1)==5 {print substr($1,1),$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14,$15,$16,$17,$18,$19,$20,21,$22,$23}' bb23 > bb23_v2
awk 'BEGIN{OFS=FS="|"}length($1)==6 {print substr($1,2),$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14,$15,$16,$17,$18,$19,$20,21,$22,$23}' bb23 >> bb23_v2
awk 'BEGIN{OFS=FS="|"}length($1)==7 {print substr($1,3),$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14,$15,$16,$17,$18,$19,$20,21,$22,$23}' bb23 >> bb23_v2
awk 'BEGIN{OFS=FS="|"}length($1)==8 {print substr($1,4),$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14,$15,$16,$17,$18,$19,$20,21,$22,$23}' bb23 >> bb23_v2


 sed 's/.$//g' bb20 > bb20_v1
 awk 'BEGIN{OFS=FS="|"}length($1)==5 {print substr($1,1),$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14,$15,$16,$17,$18,$19}' bb20_v1 > bb20_v2
 awk 'BEGIN{OFS=FS="|"}length($1)==6 {print substr($1,2),$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14,$15,$16,$17,$18,$19}' bb20_v1 >> bb20_v2
 awk 'BEGIN{OFS=FS="|"}length($1)==7 {print substr($1,3),$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14,$15,$16,$17,$18,$19}' bb20_v1 >> bb20_v2


#####
sed -n '/^1,/p' *cr23x.dat >> hepsi_cr23x_1dk.dat
sed -n '/^2,/p' *cr23x.dat >> hepsi_cr23x_10dk.dat

 cat *L0.dat >> hepsi_1dk_L0.dat
 cat *L1.dat >> hepsi_10dk_L1.da

sort -u bb21 > bb21_nodup

Monday, March 14, 2016

Zaman döngüleri

Veritabanında bir verinin eksikliğini kontrol etmek için farklı bir tabloya zaman seti tam olarak insert edilir ve veri tablosuyla zaman tabloları join edilir. Zaman setini oluşturmak için aşağıdaki script kullanılabilir.

for yil in {2016..2025}  ; do
     for ay in {01..12} ; do
         case $ay in
         1|3|5|7|8|10|12)
         maxgun=31
         ;;
         4|6|9|11)
         maxgun=30
         ;;
         2)
         case $yil in 2016|2020|2024)
         maxgun=29
         ;;
         *)
         maxgun=28
         ;;
         esac
         esac
         uzunluk=`expr length $ay`
         if [[ $uzunluk -eq 1 ]]; then
            ay="0$ay"
         else
            ay=$ay
         fi
         for gun in $(seq 1 1 $maxgun) ; do
             uzunluk=`expr length $gun`
             if [[ $uzunluk -eq 1 ]]; then
                gun="0$gun"
             else
                gun=$gun
             fi
              echo $yil$ay$gun
         done
     done
done

Tuesday, January 19, 2016

Döngüler

Döngüler

Çeşitli döngü örnekleri;


for i in `seq -w 0 10`;do

echo "i: $i"
done
###########
for x in {1..10} {15..20}
do
  echo "i: $x"
done
###########

for ((y=0;y<=12;y++)) ; do
   echo "i: $y"

done
###########

s=0
while [ "$s" -lt 10 ]; do s=`echo $s+1|bc`; echo "i:$s"; done
###########

for ((a=10;a>0;a-=2)) ; do echo -n "i: $a" ;echo; done

###########

Sunday, August 10, 2014

Date hesabı

Shell script ile 30 dakika önceki tarihi bulmak için; 

yil=`date +%Y-%m-%d-%H-%M --date="-30 minutes"|awk -F"-" '{print $1}'`
ay=`date -u --date="-30 minutes"|awk -F"-" '{print $2}'`
gun=`date -u --date="-30 minutes"|awk -F"-" '{print $3}'`
saat=`date -u --date="-30 minutes"|awk -F"-" '{print $4}'`
dakika=`date -u --date="-30 minutes"|awk -F"-" '{print $5}'`
tarih=$yil$ay$gun$saat$dakika
echo $tarih