• awk et rdb un exemple de programme

  •  
    ./select_star_ref2rdb.awk  final.rdb > clean_final.rdb
    #!/bin/sh
    gawk '
     BEGIN{          #initialisation de variables
           FS="\t"   #field separator
           np=0      #compteur
           fprint1=0 #test la signature astrometrique
           fprint2=0 #test la presence ou non de calibrateur
     }
    NR<=2 {print $0}   #affiche les 2 premieres ligne du fichier rdb 
    NR==3 {objectp=$1} #initialisation
    NR>=3{             #dans rdb on travaille a partir de la 3eme ligne 
            object=$1  #object est definit comme etant le champs 1 du fichier rdb
            if (object==objectp){ 
               np=np+1    
               line[np]=$0   #sauvegarde la ligne lu 
               astrom=$17    #signature astrometrique = champ 17
               calib=$2      #calibrateur ou cible : champ 2
               if (astrom>10) {fprint1=1} #signature astrometrique > a 10 micro arcsec, on garde
               if (calib!=""){fprint2=1}  #si calib l'etoie a une reference, on la garde
            }
    
            if (object!=objectp) { #lorsque l'objet cahnge de nom, si les tests 1 et 2 sont
                                   #satisfait, on imprime la ligne
               if ( fprint1==1 &&  fprint2==1){
                  { for (i=1; i<=np; i=i+1) print line[i] }
               }
                  fprint1=0
                  fprint2=0
                  np=1
                  line[np]=$0 
                  astrom=$17
                  calib=$2
                  if (astrom>10) {fprint1=1}
                  if (calib!=""){fprint2=1}
                  objectp=object     
            } 
    
     }' $1