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
0