Vendredi 29 janvier 2010 5 29 /01 /Jan /2010 16:20
awk qui prend un fichier avec un titre (lignes commençant par *), puis une serie de données séparées par des virgules et qui :
- reecrit les lignes de titres
- réécrit une parties des données (1 ligne sur 8) en modifiant l'ordre et le rendu
exemple : fichier de départ :
** t1= TT.TTTT, c1= C.CCCCC, s= SS.SSSS, t2= TT.TTTT, lat=+LL LL.LLL N, lon=+lll ll.lll E, hms=HHMMSS, dmy=DDMMYY
*END*
*        1         2         3         4         5         6         7         8         9        10
*23456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901
*$1        ,$2          ,$3         ,$4          ,$5             ,  $6              ,$7         ,$8             
*2345678901,123456789012,12345678901,123456789012,123456789012345,  1234567890123456,12345678901,1234567890123
t1= 13.0641, c1= 4.46401, s= 38.4702, t2= 13.0034, lat=+42 01.35 N, lon=+005 01.11 E, hms=121421, dmy=12012010
t1= 13.0632, c1= 4.46396, s= 38.4707, t2= 13.0070, lat=+42 01.36 N, lon=+005 01.11 E, hms=121429, dmy=12012010
t1= 13.0636, c1= 4.46405, s= 38.4711, t2= 13.0103, lat=+42 01.37 N, lon=+005 01.10 E, hms=121436, dmy=12012010
t1= 13.0639, c1= 4.46410, s= 38.4712, t2= 13.0093, lat=+42 01.38 N, lon=+005 01.09 E, hms=121445, dmy=12012010
 
fichier obtenu :
** t1= TT.TTTT, c1= C.CCCCC, s= SS.SSSS, t2= TT.TTTT, lat=+LL LL.LLL N, lon=+lll ll.lll E, hms=HHMMSS, dmy=DDMMYY
*END*
*        1         2         3         4         5         6         7        8         9        10
*23456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901
*$1        ,$2          ,$3         ,$4          ,$5             ,  $6             ,$7         ,$8
*2345678901,123456789012,12345678901,123456789012,123456789012345, 1234567890123456,12345678901,1234567890123
2010,01,12,12,15,17,+42.024,+005.018,13.021,38.471
2010,01,12,12,16,21,+42.025,+005.017,13.015,38.469
2010,01,12,12,17,24,+42.027,+005.016,13.011,38.469


******************************************************************************************************************************
BEGIN{FS=","; OFS=""}
{
  if($0~/^\*/){print $0}
  else
  {
    if(NR%8==0)
     {
       printf("%s,%s,%s,%s,%s,%s,%s%06.3f,%s%07.3f,%s,%s\n", substr($8,10,4),substr($8,8,2),substr($8,6,2),substr($7,6,2),substr($7,8,2),substr($7,10,2),substr($5,6,1),substr($5,7,2)+substr($5,10,5)/60, substr($6,6,1),substr($6,7,3)+substr($6,11,5)/60),substr($4,6,6),substr($3,5,6)
     }
   }
}

Par memoprog - Publié dans : AWK
Ecrire un commentaire - Voir les 0 commentaires
Retour à l'accueil

Présentation

Créer un Blog

Recherche

Calendrier

Mai 2012
L M M J V S D
  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31      
<< < > >>
Créer un blog gratuit sur over-blog.com - Contact - C.G.U. - Rémunération en droits d'auteur - Signaler un abus