OVH Cloud OVH Cloud

Aide pour un script de traitement de fichier de donnees

1 réponse
Avatar
abel.stephane
Bojour a tous,

je cherche a realiser un script qui me permettrait de faire sur un fichi
er generer par un programme dont voici le pattern, les manip suivantes:

Le pattern
1 21
37 26.754 818 25.854 272 26.252 348 32.729 353 29.
255 614 29.946 274 30.755 350 25.672 394 26.850 903
35.418 367 31.138 1239 26.606 717 29.014 294 28.553 808
28.550 998 28.712 52 29.993 1146 23.990 75 25.873 4
21 24.312 973 31.479
2 21
808 28.550 717 29.014 998 28.712 367 31.138 1256 28.
343 1817 30.163 1146 23.990 973 31.479 359 29.349 189
28.412 190 31.068 581 28.889 2127 31.404 1653 30.042 1412
25.258 773 27.330 272 26.252 130 21.410 1990 23.799 4
21 24.312 938 26.767
3 19
808 28.550 189 28.412 773 27.330 581 28.889 130 21.
410 1330 30.713 2091 24.758 821 28.108 329 25.473 1545
28.177 419 27.346 147 28.312 735 25.413 253 25.094 272
26.252 421 24.312 451 26.148 19 29.684 85 26.991
4 18
808 28.550 147 28.312 821 28.108 1545 28.177 30 29.
897 253 25.094 1336 29.898 19 29.684 272 26.252 67
27.361 451 26.148 1202 26.586 286 24.348 306 27.271 620
29.295 241 33.700 348 32.729 353 29.255
5 18
30 29.897 808 28.550 147 28.312 241 33.700 620 29.
295 353 29.255 348 32.729 1432 23.499 661 30.432 1677
29.221 223 31.062 761 34.904 324 32.526 679 24.534 212
35.638 294 28.553 52 29.993 998 28.712
6 22
30 29.897 324 32.526 147 28.312 212 35.638 661 30.
432 761 34.904 52 29.993 1834 31.341 294 28.553 815
29.131 1220 31.609 1069 25.871 1359 26.754 328 31.415 1171
31.256 242 26.472 1845 23.827 1019 30.772 226 25.663 4
28 26.694 327 25.165 808 28.550
7 20
324 32.526 30 29.897 1220 31.609 1069 25.871 147 28.
312 226 25.663 2117 27.834 1019 30.772 327 25.165 428
26.694 1783 34.290 728 35.724 1320 33.381 693 37.120 1789
34.309 689 33.928 143 27.011 216 25.042 1792 32.732 12
52 33.188
8 23
1320 33.381 30 29.897 147 28.312 324 32.526 1023 26.
679 1789 34.309 735 25.413 143 27.011 228 24.371 947
29.581 1252 33.188 124 28.078 62 25.646 689 33.928 745
28.291 375 28.161 271 35.036 1141 32.380 1545 28.177 3
06 27.271 369 30.128 1453 27.048 578 28.347


Remarques: dans le BEGIN de mon scrpit awk les champs sont separer pas d
es tabulations et les lignes ici 31.479, 26.767 etc par des retour chari
ot \n

1°) je cherche a eliminer les entiers present sur chaque ligne c est a
dire ici ne conserver que la ligne commencant pas 26.754 a ne conserver
sur chaque ligne que les valeurs reelles. (soit eliminer les valeurs pr
esentantes comme 37, 818 etc)
2°) A a mettre bout a bout ces lignes c est a dire a creer une mega lig
ne qui est en fait la fusion des 8 lignes pour qu elle fasse un record (
NR) et ceux pour toutes les lignes du fichier
3°) A verifier sur cette ligne si c est des valeurs sont repeter si oui,
eliminer les repetitions et ne conserver q une seules des valeurs repet
ées.

Si qq peut m aider en m aidant a faire au moins d 'une des etapes je l e
remercieje l en remercie

des precisions contactez moi

abel st

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Article poste via Voila News - http://www.news.voila.fr
Le : Fri Aug 29 23:44:51 2003 depuis l'IP : bobillot-1-81-57-9-188.fbx.proxad.net [VIP 668582301396]

1 réponse

Avatar
barzakh
voici une version perl, testée et fonctionnelle

#!/usr/bin/perl

$file = `cat mon_fichier_a_trier` ; .
push @list, $1 while $file =~ m! (d+.d+) !gms ;
@list = sort @list ;

while ( $num = shift @list ) {
next unless $num != $previous ;
print $num, "n" ;
# ou la nouvelle liste sans doublons
# push @newlist, $num ;
$previous = $num ;
}



barzakh


"abel.stephane" a écrit dans le message de news:
biohgj$s01$
Bojour a tous,

je cherche a realiser un script qui me permettrait de faire sur un fichi
er generer par un programme dont voici le pattern, les manip suivantes:

Le pattern
1 21
37 26.754 818 25.854 272 26.252 348 32.729 353 29.
255 614 29.946 274 30.755 350 25.672 394 26.850 903
35.418 367 31.138 1239 26.606 717 29.014 294 28.553 808
28.550 998 28.712 52 29.993 1146 23.990 75 25.873 4
21 24.312 973 31.479
2 21
808 28.550 717 29.014 998 28.712 367 31.138 1256 28.
343 1817 30.163 1146 23.990 973 31.479 359 29.349 189
28.412 190 31.068 581 28.889 2127 31.404 1653 30.042 1412
25.258 773 27.330 272 26.252 130 21.410 1990 23.799 4
21 24.312 938 26.767
3 19
808 28.550 189 28.412 773 27.330 581 28.889 130 21.
410 1330 30.713 2091 24.758 821 28.108 329 25.473 1545
28.177 419 27.346 147 28.312 735 25.413 253 25.094 272
26.252 421 24.312 451 26.148 19 29.684 85 26.991
4 18
808 28.550 147 28.312 821 28.108 1545 28.177 30 29.
897 253 25.094 1336 29.898 19 29.684 272 26.252 67
27.361 451 26.148 1202 26.586 286 24.348 306 27.271 620
29.295 241 33.700 348 32.729 353 29.255
5 18
30 29.897 808 28.550 147 28.312 241 33.700 620 29.
295 353 29.255 348 32.729 1432 23.499 661 30.432 1677
29.221 223 31.062 761 34.904 324 32.526 679 24.534 212
35.638 294 28.553 52 29.993 998 28.712
6 22
30 29.897 324 32.526 147 28.312 212 35.638 661 30.
432 761 34.904 52 29.993 1834 31.341 294 28.553 815
29.131 1220 31.609 1069 25.871 1359 26.754 328 31.415 1171
31.256 242 26.472 1845 23.827 1019 30.772 226 25.663 4
28 26.694 327 25.165 808 28.550
7 20
324 32.526 30 29.897 1220 31.609 1069 25.871 147 28.
312 226 25.663 2117 27.834 1019 30.772 327 25.165 428
26.694 1783 34.290 728 35.724 1320 33.381 693 37.120 1789
34.309 689 33.928 143 27.011 216 25.042 1792 32.732 12
52 33.188
8 23
1320 33.381 30 29.897 147 28.312 324 32.526 1023 26.
679 1789 34.309 735 25.413 143 27.011 228 24.371 947
29.581 1252 33.188 124 28.078 62 25.646 689 33.928 745
28.291 375 28.161 271 35.036 1141 32.380 1545 28.177 3
06 27.271 369 30.128 1453 27.048 578 28.347


Remarques: dans le BEGIN de mon scrpit awk les champs sont separer pas d
es tabulations et les lignes ici 31.479, 26.767 etc par des retour chari
ot n

1°) je cherche a eliminer les entiers present sur chaque ligne c est a
dire ici ne conserver que la ligne commencant pas 26.754 a ne conserver
sur chaque ligne que les valeurs reelles. (soit eliminer les valeurs pr
esentantes comme 37, 818 etc)
2°) A a mettre bout a bout ces lignes c est a dire a creer une mega lig
ne qui est en fait la fusion des 8 lignes pour qu elle fasse un record (
NR) et ceux pour toutes les lignes du fichier
3°) A verifier sur cette ligne si c est des valeurs sont repeter si oui,
eliminer les repetitions et ne conserver q une seules des valeurs repet
ées.

Si qq peut m aider en m aidant a faire au moins d 'une des etapes je l e
remercieje l en remercie

des precisions contactez moi

abel st

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Article poste via Voila News - http://www.news.voila.fr
Le : Fri Aug 29 23:44:51 2003 depuis l'IP :
bobillot-1-81-57-9-188.fbx.proxad.net [VIP 668582301396]