Copier 100 lignes d un fichier
Résolu
CYG
-
CYG -
CYG -
Bonjour,
j ai un fichier qui contient un trés grand nombre de lignes, mon objectif c'est de copier 100 lignes à partir de la ligne numéro 105(ligne soulignée), et les mettre dans un tableau pour effectuer des calculs sur les colonnes.
voici un extrai de mon fichier:
<
.
.
.
Peak search ovs window (l,p): 16 , 16
Oversampling factor: 32
Number_of_correlation_windows: 100
Number posL posP offsetL offsetP correlation
0 8452 2842 390.00 -2.62 0.16
1 8452 3133 332.94 36.75 0.15
2 8452 3425 370.31 26.56 0.12
3 8452 3716 375.16 38.09 0.13
4 8751 2939 390.97 15.22 0.14
5 8751 3230 389.44 8.16 0.18
6 8751 3522 355.34 40.38 0.09
7 8751 3813 360.94 8.81 0.19
8 9051 3036 361.91 9.31 0.24
9 9051 3327 346.34 -20.34 0.16
10 9051 3619 347.28 31.03 0.13
11 9350 2842 362.06 8.88 0.29
12 9350 3133 360.81 8.31 0.14
13 9350 3424 332.69 -22.91 0.14
14 9350 3716 347.25 -20.75 0.15
15 9650 2939 361.69 9.06 0.47
16 9650 3230 361.62 8.59 0.34
.
.
.>
guelqu'un peut m aider???
merci d avance;
CYG
j ai un fichier qui contient un trés grand nombre de lignes, mon objectif c'est de copier 100 lignes à partir de la ligne numéro 105(ligne soulignée), et les mettre dans un tableau pour effectuer des calculs sur les colonnes.
voici un extrai de mon fichier:
<
.
.
.
Peak search ovs window (l,p): 16 , 16
Oversampling factor: 32
Number_of_correlation_windows: 100
Number posL posP offsetL offsetP correlation
0 8452 2842 390.00 -2.62 0.16
1 8452 3133 332.94 36.75 0.15
2 8452 3425 370.31 26.56 0.12
3 8452 3716 375.16 38.09 0.13
4 8751 2939 390.97 15.22 0.14
5 8751 3230 389.44 8.16 0.18
6 8751 3522 355.34 40.38 0.09
7 8751 3813 360.94 8.81 0.19
8 9051 3036 361.91 9.31 0.24
9 9051 3327 346.34 -20.34 0.16
10 9051 3619 347.28 31.03 0.13
11 9350 2842 362.06 8.88 0.29
12 9350 3133 360.81 8.31 0.14
13 9350 3424 332.69 -22.91 0.14
14 9350 3716 347.25 -20.75 0.15
15 9650 2939 361.69 9.06 0.47
16 9650 3230 361.62 8.59 0.34
.
.
.>
guelqu'un peut m aider???
merci d avance;
CYG
A voir également:
- Copier 100 lignes d un fichier
- Fichier bin - Guide
- Comment réduire la taille d'un fichier - Guide
- Comment ouvrir un fichier epub ? - Guide
- Fichier rar - Guide
- Fichier .dat - Guide
26 réponses
bonjour,
merci jipicy pour l aide, pour le moment la premiére partie du probléme est résolue, il me reste la deuxiéme, dont l objectif est , aprés calculer la moyenne et l'ecart type, de la 4éme et la 5éme colonne, je dois faire le test sur chaque valeur de la colonne 4 et 5, le test est comme suit:
* si abs(val4 - moyenne4)<ecart type 4 remplacer valeur de la colonne 6 par 0.01
* si abs(val5 - moyenne4)<ecart type 5 remplacer valeur de la colonne 6 par 0.01
aprés les modifications, je dois copier les 100 lignes et les coller dans leurs ancien fichier(mise à jour du fichier du départ).
quelqu'un peut m'aider??
merci d avance
CYG
merci jipicy pour l aide, pour le moment la premiére partie du probléme est résolue, il me reste la deuxiéme, dont l objectif est , aprés calculer la moyenne et l'ecart type, de la 4éme et la 5éme colonne, je dois faire le test sur chaque valeur de la colonne 4 et 5, le test est comme suit:
* si abs(val4 - moyenne4)<ecart type 4 remplacer valeur de la colonne 6 par 0.01
* si abs(val5 - moyenne4)<ecart type 5 remplacer valeur de la colonne 6 par 0.01
aprés les modifications, je dois copier les 100 lignes et les coller dans leurs ancien fichier(mise à jour du fichier du départ).
quelqu'un peut m'aider??
merci d avance
CYG
salut,
j ai vérifier votre(jipicy) formule d écart type, ça donne pas le résultat voulu,
la formule d'ecart type et:
Ecart type= sqrt((Σ(val4-moy4)^2)/(nb de ligne - 1))
Σ: la somme des (chaque valeur de la colonne 4 - moyenne 4)
merci d avance;
CYG
j ai vérifier votre(jipicy) formule d écart type, ça donne pas le résultat voulu,
la formule d'ecart type et:
Ecart type= sqrt((Σ(val4-moy4)^2)/(nb de ligne - 1))
Σ: la somme des (chaque valeur de la colonne 4 - moyenne 4)
merci d avance;
CYG
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
j ai vérifier votre(jipicy) formule d écart type, ça donne pas le résultat voulu,
Ben tu corriges et tu adaptes !
Il serait peut être temps que tu y mettes un peu du tien, non ?
Ben tu corriges et tu adaptes !
Il serait peut être temps que tu y mettes un peu du tien, non ?
j ai modifié le script mais je sais pas comment je vais bouclé la premiére boucle(de calcul de moyenne) et ouvrir une autre boucle pour le calcul de l ecart type tt en utilisant la moyenne résultante de la premiére boucle
voici le code <
{
sum1 +=$4; moy1 = (sum1 / 16)
sum2 +=$5; moy2 = (sum2 / 16)
}
{
ecart1 += ($4 - moy1)^2
ecart2 += ($5 - moy2)^2
}
END {
printf "\t\t%s\t\t%s\t\t%s\n"," Total","Moyenne","Ecart type"
printf "Colonne 4 :\t% .2f\t% .2f\t\t% .2f\n",sum1,moy1,sqrt(ecart1/15)
printf "Colonne 5 :\t% 8.2f\t% .2f\t\t% .2f\n",sum2,moy2,sqrt(ecart2/15)
merci d avance
CYG
voici le code <
{
sum1 +=$4; moy1 = (sum1 / 16)
sum2 +=$5; moy2 = (sum2 / 16)
}
{
ecart1 += ($4 - moy1)^2
ecart2 += ($5 - moy2)^2
}
END {
printf "\t\t%s\t\t%s\t\t%s\n"," Total","Moyenne","Ecart type"
printf "Colonne 4 :\t% .2f\t% .2f\t\t% .2f\n",sum1,moy1,sqrt(ecart1/15)
printf "Colonne 5 :\t% 8.2f\t% .2f\t\t% .2f\n",sum2,moy2,sqrt(ecart2/15)
merci d avance
CYG
Salut,
vaut peut être mieux de garder le fichier d'origine que tu pourras supprimer après
donc on va diriger le résultat dans un nouveau fichier qu'on l'appelera fic_ecart par exemple
1ère méthode - en utilisant la rédirection de shell
vaut peut être mieux de garder le fichier d'origine que tu pourras supprimer après
donc on va diriger le résultat dans un nouveau fichier qu'on l'appelera fic_ecart par exemple
1ère méthode - en utilisant la rédirection de shell
perl cyg.pl > fic_ecart2ème méthode - ouverture d'un handle en écriture vers fic_ecart
#!/usr/bin/perl use strict;use warnings; my($c3,$c4,$m4,$m5,$n,$e1,$e2); open ECRIRE,">fic_ecart" or die "E/S : $!\n"; open F,"fic" or die "E/S : $!\n"; while(<F>){ next if /^\s*$/; my @col=(split /\s+/,$_)[3,4]; $c3+=$col[0]; $c4+=$col[1]; ++$n; } $m4=$c3/$n; $m5=$c4/$n; $e1=sqrt((($c3-$m4)^2) / $n); $e2=sqrt((($c4-$m5)^2) / $n); printf ECRIRE "\t\t%s\t\t%s\t\t%s\n"," Total","Moyenne","Ecart type"; printf ECRIRE "Colonne 4 :\t% .2f\t% .2f\t\t% .2f\n",$c3,$m4,$e1; printf ECRIRE "Colonne 5 :\t% 8.2f\t% .2f\t\t% .2f\n\n",$c4,$m5,$e2; close F; open F,"fic" or die "E/S : $!\n"; while(<F>){ my @col=(split /\s+/,$_)[3,4]; s/(.*)\s+\d.*/$1 0.1/ if (abs($col[0] - $m4) < $e1) || (abs($col[1] - $m5) < $e2); print ECRIRE; } close F; __END__
merci lami20j, tout mes respect,
si vous souveniez du probléme, avant j avais besoin de copier 100 lignes d'un fichier et les mettres dans un autre, maintenant j ai besoin de mettre à jour mon premier fichier ça veut dire remplacer les anciens 100 lignes par les nouveaux (que je viens de calculer dans le fichier <fic_ecart>); vous pouvez m 'aider
merci d avance
CYG
si vous souveniez du probléme, avant j avais besoin de copier 100 lignes d'un fichier et les mettres dans un autre, maintenant j ai besoin de mettre à jour mon premier fichier ça veut dire remplacer les anciens 100 lignes par les nouveaux (que je viens de calculer dans le fichier <fic_ecart>); vous pouvez m 'aider
merci d avance
CYG