IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Shell et commandes GNU Discussion :

Utilisation de grep non orthodoxe ?


Sujet :

Shell et commandes GNU

  1. #21
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2015
    Messages
    82
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2015
    Messages : 82
    Par défaut
    Bonjour !

    Pour commencer j'ai cree un fichier ou je n'ai mis que :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    32
     1     tau  0.10  emx  318.07  ECHK5  18858.  18844.  18844.      0.      0.
     hydro loop
     2 16  tau  0.52  emx   34.75  ECHK5  20015.  19992.  19992.   2639.      0 
     3  8  tau  0.94  emx   14.80  ECHK5  20310.  20285.  20285.    470.      0
     4  8  tau  1.36  emx    8.06  ECHK5  20446.  20415.  20415.    529.      10
     5  4  tau  1.78  emx    5.24  ECHK5  20564.  20520.  20520.     82.
     6  4  tau  2.20  emx    3.86  ECHK5  20642.  20589.  20589.     84.
     7  4  tau  2.62  emx    3.22  ECHK5  20700.  20640.  20640.     89.
     8  4  tau  3.04  emx    2.90  ECHK5  20745.  20682.  20682.     97.
     9  4  tau  3.46  emx    2.55  ECHK5  20780.  20714.  20714.     96.
    10  4  tau  3.88  emx    2.20  ECHK5  20805.  20735.  20735.     94.
    11  4  tau  4.30  emx    1.87  ECHK5  20822.  20749.  20749.    103.
    12  4  tau  4.72  emx    1.57  ECHK5  20829.  20749.  20749.    106.
    13  4  tau  5.14  emx    1.30  ECHK5  20824.  20732.  20732.     99.
    14  4  tau  5.56  emx    1.08  ECHK5  20803.  20702.  20702.     98.
    15  4  tau  5.98  emx    0.89  ECHK5  20765.  20649.  20649.     92.
    16  4  tau  6.40  emx    0.74  ECHK5  20700.  20567.  20567.    103.
    17  4  tau  6.82  emx    0.61  ECHK5  20600.  20448.  20448.    109.
    18  4  tau  7.24  emx    0.51  ECHK5  20457.  20284.  20284.    107.
    19  4  tau  7.66  emx    0.43  ECHK5  20265.  20075.  20075.    107.
    20  4  tau  8.08  emx    0.36  ECHK5  20021.  19809.  19809.    100.
    21  4  tau  8.50  emx    0.31  ECHK5  19726.  19493.  19493.    103.
    22  4  tau  8.92  emx    0.26  ECHK5  19382.  19134.  19134.    100.
    23  4  tau  9.34  emx    0.22  ECHK5  18994.  18734.  18734.    100.
    24  4  tau  9.76  emx    0.19  ECHK5  18565.  18287.  18287.    107.
    rdtyrd
    fdy
    f
    dg
    rd
    trd
    trd
    Que j'appelle Suite_nombre

    Je veux calculer la moyenne de la colonne 10 qui ne prenne en compte que les lignes avec tau,

    J'ai fais un script avec awk (oui je sais ca servait pas trop pour le coup mais bon ...)

    Dans ce script j'ai :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    #!/bin/sh
     
    awk ' /tau/ {ligne +=1} { sum += $10 } END { print ( sum/(ligne)) } ' $1
    Je lance ma commande dans le terminal et j'obtiens :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    [sophys@nanpc327 calcul_nombres_colonne]$ tawk.sh Suite_nombre
    19374.3
    Qui est ce que je veux.

    Maintenant j'en arrive au probleme ou jai un fichier comme ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
      1     tau  0.35  emx   75.13  ECHK5  17447.  17421.  17421.      0.      0.
      2  8  tau  0.76  emx   26.47  ECHK5  17821.  17795.  17795.    372.
      3  8  tau  1.17  emx   14.10  ECHK5  17973.  17942.  17942.    466.
      4  4  tau  1.57  emx    8.55  ECHK5  18099.  18061.  18061.     77.
      5  4  tau  1.98  emx    6.06  ECHK5  18183.  18136.  18136.     72.
      6  4  tau  2.39  emx    4.89  ECHK5  18245.  18192.  18192.     80.
      7  4  tau  2.80  emx    4.00  ECHK5  18294.  18236.  18236.     86.
      8  4  tau  3.21  emx    3.29  ECHK5  18333.  18273.  18273.     90.
      9  4  tau  3.61  emx    2.67  ECHK5  18364.  18303.  18303.     97.
     10  4  tau  4.02  emx    2.14  ECHK5  18389.  18324.  18324.    100.
     11  4  tau  4.43  emx    1.72  ECHK5  18409.  18340.  18340.    106.
     12  4  tau  4.84  emx    1.43  ECHK5  18424.  18347.  18347.    105.
     13  4  tau  5.25  emx    1.23  ECHK5  18430.  18345.  18345.    102.
     14  4  tau  5.65  emx    1.06  ECHK5  18419.  18324.  18324.    110.
     15  4  tau  6.06  emx    0.90  ECHK5  18385.  18276.  18276.    112.
     16  4  tau  6.47  emx    0.77  ECHK5  18322.  18199.  18199.    112.
     17  4  tau  6.88  emx    0.66  ECHK5  18226.  18089.  18089.    116.
     18  4  tau  7.29  emx    0.56  ECHK5  18097.  17945.  17945.    116.
     19  4  tau  7.69  emx    0.48  ECHK5  17934.  17765.  17765.    113.
     20  4  tau  8.10  emx    0.40  ECHK5  17732.  17547.  17547.    121.
     21  4  tau  8.51  emx    0.35  ECHK5  17489.  17286.  17286.    116.
     22  4  tau  8.92  emx    0.29  ECHK5  17205.  16983.  16983.    115.
     23  4  tau  9.33  emx    0.25  ECHK5  16880.  16641.  16641.    120.
     24  4  tau  9.73  emx    0.22  ECHK5  16518.  16286.  16286.    115.
     25  4  tau 10.14  emx    0.19  ECHK5  16121.  15879.  15879.    117.
      1     tau  0.35  emx  101.03  ECHK5  19242.  19236.  19236.      0.      0.
      2  8  tau  0.76  emx   34.55  ECHK5  19685.  19653.  19653.    340.
      3  8  tau  1.17  emx   18.26  ECHK5  19850.  19818.  19818.    445.
      4  4  tau  1.57  emx   11.22  ECHK5  19992.  19951.  19951.     71.
      5  4  tau  1.98  emx    7.71  ECHK5  20086.  20039.  20039.     79.
      6  4  tau  2.39  emx    5.61  ECHK5  20155.  20101.  20101.     87.
      7  4  tau  2.80  emx    4.20  ECHK5  20212.  20152.  20152.     92.
      8  4  tau  3.21  emx    3.22  ECHK5  20258.  20197.  20197.    103.
      9  4  tau  3.61  emx    2.51  ECHK5  20296.  20232.  20232.     95.
     10  4  tau  4.02  emx    1.98  ECHK5  20326.  20258.  20258.    104.
     11  4  tau  4.43  emx    1.59  ECHK5  20344.  20274.  20274.    106.
     12  4  tau  4.84  emx    1.32  ECHK5  20350.  20273.  20273.    111.
     13  4  tau  5.25  emx    1.10  ECHK5  20339.  20253.  20253.    113.
     14  4  tau  5.65  emx    0.92  ECHK5  20308.  20212.  20212.    111.
     15  4  tau  6.06  emx    0.77  ECHK5  20255.  20147.  20147.    121.
     16  4  tau  6.47  emx    0.66  ECHK5  20178.  20058.  20058.    120.
     17  4  tau  6.88  emx    0.56  ECHK5  20074.  19941.  19941.    120.
     18  4  tau  7.29  emx    0.48  ECHK5  19940.  19791.  19791.    119.
     19  4  tau  7.69  emx    0.42  ECHK5  19772.  19606.  19606.    117.
     20  4  tau  8.10  emx    0.36  ECHK5  19566.  19384.  19384.    119.
     21  4  tau  8.51  emx    0.32  ECHK5  19324.  19122.  19122.    120.
     22  4  tau  8.92  emx    0.27  ECHK5  19048.  18827.  18827.    121.
     23  4  tau  9.33  emx    0.24  ECHK5  18739.  18500.  18500.    115.
     24  4  tau  9.73  emx    0.21  ECHK5  18399.  18147.  18147.    119.
     25  4  tau 10.14  emx    0.19  ECHK5  18030.  17766.  17766.    125.
      1     tau  0.35  emx   82.85  ECHK5  18790.  18783.  18783.      0.      0.
      2  8  tau  0.76  emx   29.20  ECHK5  19227.  19195.  19195.    419.
      3  8  tau  1.17  emx   15.67  ECHK5  19391.  19355.  19355.    505.
      4  4  tau  1.59  emx    9.51  ECHK5  19533.  19491.  19491.     85.
      5  4  tau  2.00  emx    6.60  ECHK5  19623.  19575.  19575.     79.
      6  4  tau  2.41  emx    5.12  ECHK5  19688.  19635.  19635.     86.
      7  4  tau  2.82  emx    4.18  ECHK5  19738.  19678.  19678.     99.
      8  4  tau  3.23  emx    3.53  ECHK5  19777.  19714.  19714.    101.
      9  4  tau  3.65  emx    2.98  ECHK5  19809.  19744.  19744.    100.
     10  4  tau  4.06  emx    2.49  ECHK5  19834.  19768.  19768.    102.
     11  4  tau  4.47  emx    2.06  ECHK5  19853.  19785.  19785.    120.
     12  4  tau  4.88  emx    1.69  ECHK5  19867.  19795.  19795.    126.
     13  4  tau  5.29  emx    1.38  ECHK5  19876.  19793.  19793.    128.
     14  4  tau  5.71  emx    1.13  ECHK5  19871.  19774.  19774.    125.
     15  4  tau  6.12  emx    0.94  ECHK5  19840.  19728.  19728.    124.
     16  4  tau  6.53  emx    0.78  ECHK5  19775.  19646.  19646.    122.
     17  4  tau  6.94  emx    0.66  ECHK5  19673.  19529.  19529.    122.
     18  4  tau  7.35  emx    0.56  ECHK5  19534.  19375.  19375.    127.
     19  4  tau  7.77  emx    0.47  ECHK5  19357.  19182.  19182.    125.
     20  4  tau  8.18  emx    0.40  ECHK5  19144.  18951.  18951.    125.
     21  4  tau  8.59  emx    0.34  ECHK5  18894.  18686.  18686.    124.
     22  4  tau  9.00  emx    0.29  ECHK5  18605.  18380.  18380.    123.
     23  4  tau  9.41  emx    0.25  ECHK5  18278.  18035.  18035.    125.
     24  4  tau  9.83  emx    0.22  ECHK5  17912.  17648.  17648.    124.
     25  4  tau 10.24  emx    0.20  ECHK5  17509.  17232.  17232.    121.
      1     tau  0.35  emx  107.54  ECHK5  18456.  18438.  18438.      0.      0.
      2  8  tau  0.77  emx   35.97  ECHK5  18882.  18856.  18856.    385.
      3  8  tau  1.20  emx   18.48  ECHK5  19046.  19015.  19015.    474.
      4  4  tau  1.62  emx   10.70  ECHK5  19182.  19146.  19146.     78.
      5  4  tau  2.05  emx    6.85  ECHK5  19270.  19228.  19228.     80.
      6  4  tau  2.47  emx    4.99  ECHK5  19335.  19287.  19287.     83.
      7  4  tau  2.89  emx    4.01  ECHK5  19384.  19331.  19331.     87.
      8  4  tau  3.32  emx    3.28  ECHK5  19424.  19368.  19368.     98.
      9  4  tau  3.74  emx    2.66  ECHK5  19458.  19397.  19397.    105.
     10  4  tau  4.17  emx    2.14  ECHK5  19488.  19425.  19425.    107.
     11  4  tau  4.59  emx    1.72  ECHK5  19514.  19446.  19446.    109.
     12  4  tau  5.01  emx    1.38  ECHK5  19536.  19461.  19461.    114.
     13  4  tau  5.44  emx    1.12  ECHK5  19550.  19472.  19472.    120.
     14  4  tau  5.86  emx    0.94  ECHK5  19549.  19457.  19457.    124.
     15  4  tau  6.29  emx    0.81  ECHK5  19524.  19418.  19418.    116.
     16  4  tau  6.71  emx    0.69  ECHK5  19469.  19348.  19348.    121.
     17  4  tau  7.13  emx    0.58  ECHK5  19377.  19241.  19241.    124.
     18  4  tau  7.56  emx    0.50  ECHK5  19246.  19096.  19096.    117.
     19  4  tau  7.98  emx    0.42  ECHK5  19077.  18910.  18910.    118.
     20  4  tau  8.41  emx    0.36  ECHK5  18869.  18686.  18686.    129.
     21  4  tau  8.83  emx    0.31  ECHK5  18624.  18424.  18424.    123.
     22  4  tau  9.25  emx    0.27  ECHK5  18340.  18123.  18123.    126.
     23  4  tau  9.68  emx    0.23  ECHK5  18021.  17783.  17783.    120.
     24  4  tau 10.10  emx    0.20  ECHK5  17665.  17412.  17412.    120.
     25  4  tau 10.53  emx    0.18  ECHK5  17272.  17005.  17005.    124.
    Qui resemblera plus a ce que j'aurais a etudier.

    Je compte faire une separation avec un mod de tout les 25 mais c'est pas encore ca :

    je fais un :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    awk ' /tau/ {ligne +=1} {toto = sum[$0%25] += $10 } END { print ( toto/(ligne)) } ' $1
    Et mon resultat :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    [sophys@nanpc327 calcul_nombres_colonne]$ tawk.sh Suite_nombre2
    678.82
    Je travaille ca !

  2. #22
    Expert confirmé Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 444
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2012
    Messages : 4 444
    Par défaut
    Tu ne dois pas afficher qu'a la fin du traitement, mais chaque fois que le modulo 25 ramène 0.

  3. #23
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2015
    Messages
    82
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2015
    Messages : 82
    Par défaut
    D'accord

    Donc j'ai

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    awk ' /tau/ {ligne +=1} {toto = sum[NR%25] += $10 } {if (NR%25==0) { print $1 "   " ligne "     " toto "     " toto/ligne }} ' $1
    ( Touours sur le meme fichier que j'ai deja montre ) et j'obtiens le resultat suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    [sophys@nanpc327 calcul_nombres_colonne]$ tawk.sh Suite_nombre2
    25   25     15879     635.16
    25   50     33645     672.9
    25   75     50877     678.36
    25   100     67882     678.82
    Donc $1 est toujours egale a 25 parce que je suis au moment ou NR mod 25 = 0, donc ca c'est bien, ensuite je vois bien mon nombre de ligne. Par contre maintenant j'ai un probleme>

    Sur la premiere ligne j'ai le nombre que je recherche a la 9eme colonne et pas la 10eme ... Ensuite j'aimerai divise par 25 donc ca facile je fais divise par $1.

    Du coup j'en suis ici :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    awk ' /tau/ {ligne +=1} {toto = sum += $10 } {if (NR%25==0) {sum=0}} {if (NR%25==0) { print $1 "   " ligne "     " toto "     " toto/$1 }} ' $1
    Resultat :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    [sophys@nanpc327 calcul_nombres_colonne]$ tawk.sh Suite_nombre2
    25   25     427514     17100.6
    25   50     472702     18908.1
    25   75     461694     18467.8
    25   100     454335     18173.4
    Mais la j'arrive a deux probleme :
    - premiere ligne = nombre que je veux a la 9eme colonne

    Mon idee serait par exemple, prendre troisieme colonne apres ECHK5 (mais comment faire :s)

    J'ai tente quelque chose du style :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    awk ' /tau/ {ligne +=1} {if (NR%25==1) {som = sum += $9} else if (NR%25==0) {sum=0} else {som = sum += $10 }} 
     {if (NR%25==0) { print $1 "   " ligne "     " som "     " som/$1 }} ' $1
    Mais je tombe pas sur le bon resultat (apres verification calcul a la main)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    [sophys@nanpc327 calcul_nombres_colonne]$ tawk.sh Suite_nombre2
    25   25     429056     17162.2
    25   50     474172     18966.9
    25   75     463245     18529.8
    25   100     455768     18230.7
    - j'ai regarde d'autre fichier et la je tombe plutot sur du :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    [sophys@nansl3 1]$ grep ECHK5 z-gg2mw24d-2.mtr
      1     tau  0.35  emx   94.71  ECHK5  16286.  16272.  16272.      0.      0.
      2  8  tau  0.73  emx   34.63  ECHK5  16614.  16591.  16591.    390.
      3  8  tau  1.11  emx   18.58  ECHK5  16752.  16723.  16723.    470.
      4  4  tau  1.49  emx   12.29  ECHK5  16868.  16831.  16831.     65.
      5  4  tau  1.87  emx    8.70  ECHK5  16945.  16901.  16901.     73.
      6  4  tau  2.25  emx    6.28  ECHK5  17000.  16952.  16952.     82.
      7  4  tau  2.63  emx    4.86  ECHK5  17041.  16989.  16989.     89.
      8  4  tau  3.01  emx    4.03  ECHK5  17073.  17018.  17018.     88.
      9  4  tau  3.39  emx    3.35  ECHK5  17098.  17041.  17041.     91.
     10  4  tau  3.77  emx    2.78  ECHK5  17118.  17062.  17062.    100.
     11  4  tau  4.15  emx    2.32  ECHK5  17135.  17074.  17074.    100.
     12  4  tau  4.53  emx    1.95  ECHK5  17146.  17079.  17079.     99.
     13  4  tau  4.91  emx    1.63  ECHK5  17150.  17078.  17078.    103.
     14  4  tau  5.29  emx    1.36  ECHK5  17142.  17063.  17063.    109.
     15  4  tau  5.67  emx    1.12  ECHK5  17118.  17026.  17026.    123.
     16  4  tau  6.05  emx    0.92  ECHK5  17072.  16969.  16969.    108.
     17  4  tau  6.43  emx    0.75  ECHK5  16999.  16883.  16883.    127.
     18  4  tau  6.81  emx    0.62  ECHK5  16896.  16765.  16765.    113.
     19  4  tau  7.19  emx    0.51  ECHK5  16760.  16613.  16613.    124.
     20  4  tau  7.57  emx    0.42  ECHK5  16586.  16428.  16428.    127.
     21  4  tau  7.95  emx    0.35  ECHK5  16375.  16213.  16213.    121.
     22  4  tau  8.33  emx    0.30  ECHK5  16125.  15944.  15944.    125.
     23  4  tau  8.71  emx    0.25  ECHK5  15839.  15641.  15641.    128.
     24  4  tau  9.09  emx    0.21  ECHK5  15519.  15307.  15307.    125.
     25  4  tau  9.47  emx    0.18  ECHK5  15169.  14943.  14943.    123.
      1     tau  0.35  emx   73.09  ECHK5  15066.  15068.  15068.      0.      0.
      2  8  tau  0.76  emx   25.78  ECHK5  15414.  15398.  15398.    407.
      3  8  tau  1.17  emx   13.56  ECHK5  15545.  15527.  15527.    505.
      4  4  tau  1.59  emx    8.10  ECHK5  15652.  15630.  15630.     77.
      5  4  tau  2.00  emx    5.84  ECHK5  15724.  15699.  15699.     84.
      6  4  tau  2.41  emx    4.66  ECHK5  15776.  15748.  15748.     86.
      7  4  tau  2.82  emx    3.79  ECHK5  15817.  15786.  15786.     93.
      8  4  tau  3.23  emx    3.13  ECHK5  15851.  15819.  15819.    113.
      9  4  tau  3.65  emx    2.56  ECHK5  15882.  15845.  15845.    113.
     10  4  tau  4.06  emx    2.07  ECHK5  15911.  15873.  15873.    119.
     11  4  tau  4.47  emx    1.66  ECHK5  15938.  15895.  15895.    127.
     12  4  tau  4.88  emx    1.33  ECHK5  15960.  15910.  15910.    126.
     13  4  tau  5.29  emx    1.09  ECHK5  15974.  15914.  15914.    128.
     14  4  tau  5.71  emx    0.90  ECHK5  15972.  15906.  15906.    120.
     15  4  tau  6.12  emx    0.75  ECHK5  15950.  15872.  15872.    127.
     16  4  tau  6.53  emx    0.62  ECHK5  15904.  15813.  15813.    129.
     17  4  tau  6.94  emx    0.52  ECHK5  15830.  15725.  15725.    128.
     18  4  tau  7.35  emx    0.44  ECHK5  15725.  15607.  15607.    127.
     19  4  tau  7.77  emx    0.37  ECHK5  15587.  15454.  15454.    127.
     20  4  tau  8.18  emx    0.32  ECHK5  15414.  15264.  15264.    132.
     21  4  tau  8.59  emx    0.27  ECHK5  15204.  15039.  15039.    135.
     22  4  tau  9.00  emx    0.23  ECHK5  14957.  14777.  14777.    135.
     23  4  tau  9.41  emx    0.20  ECHK5  14676.  14483.  14483.    138.
     24  4  tau  9.83  emx    0.17  ECHK5  14362.  14157.  14157.    128.
      1     tau  0.35  emx   68.25  ECHK5  14142.  14129.  14129.      0.      0.
      2  8  tau  0.77  emx   22.86  ECHK5  14457.  14448.  14448.    352.
      3  8  tau  1.20  emx   12.28  ECHK5  14584.  14570.  14570.    449.
      4  4  tau  1.62  emx    7.69  ECHK5  14688.  14669.  14669.     71.
      5  4  tau  2.05  emx    5.59  ECHK5  14755.  14733.  14733.     75.
      6  4  tau  2.47  emx    4.44  ECHK5  14804.  14779.  14779.     78.
      7  4  tau  2.89  emx    3.59  ECHK5  14842.  14813.  14813.     85.
      8  4  tau  3.32  emx    2.99  ECHK5  14873.  14841.  14841.     95.
      9  4  tau  3.74  emx    2.45  ECHK5  14901.  14865.  14865.    103.
     10  4  tau  4.17  emx    1.98  ECHK5  14925.  14890.  14890.    109.
     11  4  tau  4.59  emx    1.57  ECHK5  14947.  14909.  14909.    113.
     12  4  tau  5.01  emx    1.26  ECHK5  14967.  14926.  14926.    116.
     13  4  tau  5.44  emx    1.02  ECHK5  14980.  14931.  14931.    122.
     14  4  tau  5.86  emx    0.84  ECHK5  14979.  14922.  14922.    125.
     15  4  tau  6.29  emx    0.69  ECHK5  14959.  14893.  14893.    128.
     16  4  tau  6.71  emx    0.58  ECHK5  14918.  14843.  14843.    125.
     17  4  tau  7.13  emx    0.48  ECHK5  14856.  14770.  14770.    131.
     18  4  tau  7.56  emx    0.40  ECHK5  14774.  14674.  14674.    128.
     19  4  tau  7.98  emx    0.34  ECHK5  14671.  14558.  14558.    126.
     20  4  tau  8.41  emx    0.29  ECHK5  14543.  14413.  14413.    130.
     21  4  tau  8.83  emx    0.25  ECHK5  14380.  14234.  14234.    132.
     22  4  tau  9.25  emx    0.21  ECHK5  14177.  14013.  14013.    138.
     23  4  tau  9.68  emx    0.18  ECHK5  13931.  13750.  13750.    124.
      1     tau  0.35  emx   73.37  ECHK5  15712.  15699.  15699.      0.      0.
      2  8  tau  0.77  emx   24.47  ECHK5  16071.  16057.  16057.    373.
      3  8  tau  1.20  emx   12.14  ECHK5  16210.  16194.  16194.    455.
      4  4  tau  1.62  emx    7.35  ECHK5  16327.  16306.  16306.     73.
      5  4  tau  2.05  emx    5.65  ECHK5  16400.  16377.  16377.     76.
      6  4  tau  2.47  emx    4.30  ECHK5  16453.  16424.  16424.     80.
      7  4  tau  2.89  emx    3.23  ECHK5  16493.  16462.  16462.     83.
      8  4  tau  3.32  emx    2.42  ECHK5  16526.  16490.  16490.     96.
      9  4  tau  3.74  emx    1.98  ECHK5  16556.  16517.  16517.    106.
     10  4  tau  4.17  emx    1.66  ECHK5  16582.  16542.  16542.    109.
     11  4  tau  4.59  emx    1.41  ECHK5  16607.  16564.  16564.    115.
     12  4  tau  5.01  emx    1.21  ECHK5  16630.  16580.  16580.    112.
     13  4  tau  5.44  emx    1.05  ECHK5  16650.  16589.  16589.    117.
     14  4  tau  5.86  emx    0.91  ECHK5  16659.  16584.  16584.    123.
     15  4  tau  6.29  emx    0.78  ECHK5  16642.  16552.  16552.    128.
     16  4  tau  6.71  emx    0.68  ECHK5  16591.  16487.  16487.    126.
     17  4  tau  7.13  emx    0.58  ECHK5  16504.  16391.  16391.    127.
     18  4  tau  7.56  emx    0.50  ECHK5  16381.  16259.  16259.    130.
     19  4  tau  7.98  emx    0.43  ECHK5  16222.  16086.  16086.    137.
     20  4  tau  8.41  emx    0.37  ECHK5  16028.  15878.  15878.    128.
     21  4  tau  8.83  emx    0.32  ECHK5  15800.  15635.  15635.    132.
     22  4  tau  9.25  emx    0.28  ECHK5  15539.  15360.  15360.    129.
     23  4  tau  9.68  emx    0.24  ECHK5  15247.  15054.  15054.    131.
     24  4  tau 10.10  emx    0.21  ECHK5  14928.  14724.  14724.    130.
     25  4  tau 10.53  emx    0.18  ECHK5  14583.  14366.  14366.    125.
    Donc je ne peux pas faire le modulo ! puisque je n'ai pas obligatoirement 25.

    Ce que je pourrais faire : Faire en sorte de faire la somme et arreter des que le nombre de la premiere colonne a une ligne donnee est plus petit que le nombre de la premiere colonne de la ligne precedente.

    Exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     23  4  tau  9.68  emx    0.18  ECHK5  13931.  13750.  13750.    124.
      1     tau  0.35  emx   73.37  ECHK5  15712.  15699.  15699.      0.      0.
    Mais ca marcherait pas pour la derniere ligne ...

    J'aurai une question dont la reponse pourrait m'etre utile.

    J'ai donc ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
      1     tau  0.35  emx   94.71  ECHK5  16286.  16272.  16272.      0.      0.
      2  8  tau  0.73  emx   34.63  ECHK5  16614.  16591.  16591.    390.
      3  8  tau  1.11  emx   18.58  ECHK5  16752.  16723.  16723.    470.
      4  4  tau  1.49  emx   12.29  ECHK5  16868.  16831.  16831.     65.
      5  4  tau  1.87  emx    8.70  ECHK5  16945.  16901.  16901.     73.
      6  4  tau  2.25  emx    6.28  ECHK5  17000.  16952.  16952.     82.
    Comment je fais pour printer seulement le 5 (5eme ligne premiere colonne) ou le 16614 ( deuxieme ligne huitieme colonne ) ?

  4. #24
    Expert confirmé Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 444
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2012
    Messages : 4 444
    Par défaut
    C'est peut-être ceci que tu veux ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $ grep ECHK5 z-gg2mw24d-2.mtr | awk '{A=($1 == 1 ? 9 : 10)};NR > 1 && $1 == 1 {print P1,NR-1,Sum,Sum/P1;Sum=0}{Sum+=$A;P1=$1};END{print P1,NR,Sum,Sum/P1}'
    25 25 415406 16616.2
    24 49 372209 15508.7
    23 72 336573 14633.6
    25 97 402177 16087.1

  5. #25
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2015
    Messages
    82
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2015
    Messages : 82
    Par défaut
    Mais c'est super CA !!!!!!

    Est-ce que tu peux m'expliquer un peu plus en details :

    Ce que je comprends dans :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $ grep ECHK5 z-gg2mw24d-2.mtr | awk '{A=($1 == 1 ? 9 : 10)};NR > 1 && $1 == 1 {print P1,NR-1,Sum,Sum/P1;Sum=0}{Sum+=$A;P1=$1};END{print P1,NR,Sum,Sum/P1}'
    Je comprend ce qu'est P1, NR, Sum et Sum/P1 (c 'est exactement ce que je voulais !)

    Maintenant ca :

    A=($1 == 1 ? 9 : 10)

    La on que A prend la colonne 9 pour la ligne 1 et la colonne 10 pour les autres lignes

    Pour faire par exemple B prend la colonne 10 pour les lignes 1-2 ,la colonne 4 pour la ligne 3 et la colonne 6 pour les dernieres lignes je fais

    B=($1 == 1 ? 10 : 2 ? 10 : 3 ? 4 : 6 ) ? Pas moyen de regrouper les lignes 1-2 ?

    Je ne comprend pas trop l syntaxe d'apres :

    ;NR > 1 && $1 == 1 {print P1,NR-1,Sum,Sum/P1;Sum=0}{Sum+=$A;P1=$1};END

    Je pense que ca reprend un peu le principe de Flodelarab qund il montrait que l'echo ne se montrait pa

  6. #26
    Expert confirmé Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 444
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2012
    Messages : 4 444
    Par défaut
    Globalement, la syntaxe de awk est la suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    condition { bloc de commande }
    et le bloc de commande est exécuté si la condition est vraie.
    s'il n'y a pas de condition, le bloc est toujours exécuté.

    Par défaut, awk traite un flux ligne par ligne (un fichier est un flux de type fichier).

    Après, en awk, il existe des commandes comme next qui ordonne à awk de passer immédiatement à la ligne suivante sans exécuter la suite du code (tu en as un exemple d'utilisation dans le premier code que j'avais proposé).

    l'opérateur ternaire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    condition ? valeur si vraie : valeur si fausse
    Ici, son utilisation est très restreinte car on ne peut faire qu'un seul et unique retour: on ne peut pas faire une suite d'action.
    Pour ton exemple avec B, on ne peut pas utiliser pleinement cette syntaxe, car valeur si fausse est obligatoire, ce que l'on ne sait pas dans le cas des valeur que doit prendre B.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    NR > 1 && $1 == 1 {print P1,NR-1,Sum,Sum/P1;Sum=0}
    Pour cette partie, on exécute le bloc de commande si NR > 1 (donc si on n'est pas en train de traiter la première ligne du flux) ET si $1 == 1.
    Ce bloc de commande est toujours exécuté, puisqu'il n'est lié à aucune condition.

  7. #27
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2015
    Messages
    82
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2015
    Messages : 82
    Par défaut
    D'accord je comprend mieux !

    Je vais encore lire tout ça demain au réveil.

    J'ai un petit problème que je ne comprends pas,

    J'essaye de généraliser la commande :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $ grep ECHK5 z-gg2mw24d-2.mtr | awk '{A=($1 == 1 ? 9 : 10)};NR > 1 && $1 == 1 {print P1,NR-1,Sum,Sum/P1;Sum=0}{Sum+=$A;P1=$1};END{print P1,NR,Sum,Sum/P1}'
    en le mettant dans mon script mais ça ne me print que dalle T_T

    Voici mon script : partie intéressante pour la question analize() et son utilisation plus bas

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    #!/bin/sh
     
    MTR1a=/scratch/theoric2/werner/public/outp/gg2mw24a/1
    MTR1b=/scratch/theoric2/werner/public/outp/gg2mw24b/1
    MTR2a=/scratch/theoric2/werner/public/outp/gg2mw24a/2
    MTR2b=/scratch/theoric2/werner/public/outp/gg2mw24b/2
    MTR1c=/scratch/theoric2/werner/public/outp/gg2mw24c/1
    MTR2c=/scratch/theoric2/werner/public/outp/gg2mw24c/2
    MTR1d=/scratch/theoric2/werner/public/outp/gg2mw24d/1
    MTR2d=/scratch/theoric2/werner/public/outp/gg2mw24d/2
     
    REP1=/users/theoric/sophys/EPOS/Check/gg2mw24a
    REP2=/users/theoric/sophys/EPOS/Check/gg2mw24b
    REP3=/users/theoric/sophys/EPOS/Check/gg2mw24c
    REP4=/users/theoric/sophys/EPOS/Check/gg2mw24d
     
    CHK=/users/theoric/sophys/EPOS/Check
     
    NMF=12786
     
    tri(){
    if [ ! -d $1 ]; then cd $CHK ; mkdir $2; fi
     
    pathbase="$3/z-$2"
     
    for i in `seq 0 19`; do
        echo "##########################################################################">> "$1/ECHK5$i.txt"
        echo "##########################################################################">> "$1/ECHK5$i.txt"
        echo "           File $3                            " >> "$1/ECHK5$i.txt"
        echo "##########################################################################">> "$1/ECHK5$i.txt"
        echo "##########################################################################">> "$1/ECHK5$i.txt"
        echo "">> "$1/ECHK5$i.txt"
    done
     
    cd $3 
     
    for i in `seq $4 $5`; do
      j=`expr $i % 20 | bc`
      if [ -f $pathbase-$i.mtr ]; then
        echo "" >> "$1/ECHK5$j.txt"
        echo "**********************" >> "$1/ECHK5$j.txt" 
        echo " File $i" >> "$1/ECHK5$j.txt"
        echo "**********************" >> "$1/ECHK5$j.txt"
        echo "">> "$1/ECHK5$j.txt"
        echo "`grep 'ECHK5' z-$2-$i.mtr`">> "$1/ECHK5$j.txt" 
      fi
    done
    }
     
    analyze(){
     
    cd $1
     
    for i in `seq $3 $4`; do
    # j=`expr $i % 20 | bc`
      if [ -f $pathbase-$i.mtr ]; then
        grep 'ECHK5' z-$2-$i.mtr | awk '{A=($1 == 1 ? 9 : 10)};NR > 1 && $1 == 1 {print P1,NR-1,Sum,Sum/P1;Sum=0}{Sum+=$A;P1=$1};END{print P1,NR,Sum,Sum/P1}'
      fi
    done
     
    }
     
    # Utilisation des fonctions
     
    #rm $REP1/ECHK5*
    #rm $REP2/ECHK5*
    #rm $REP3/ECHK5*
    #rm $REP4/ECHK5*
     
    #{
    #tri $REP1 gg2mw24a $MTR1a 1 10000
    #tri $REP1 gg2mw24a $MTR2a 10000 $NMF
    #tri $REP2 gg2mw24b $MTR1b 1 10000
    #tri $REP2 gg2mw24b $MTR2b 10000 $NMF
    #tri $REP3 gg2mw24c $MTR1c 1 10000
    #tri $REP3 gg2mw24c $MTR2c 10000 $NMF
    #tri $REP4 gg2mw24d $MTR1d 1 10000
    #tri $REP4 gg2mw24d $MTR2d 10000 $NMF
    #}
     
    #echo " Job Finished 1"
     
    {
    analyze $MTR1a gg2mw24a 1 10000 $REP1
    }>"$REP1/First_analyze_ECHK5.txt"
     
     
    echo " Job Finished "
    Je retrouve bien mon fichier First_analyze, mais vide T_T

    Pourtant lorsque je teste " a la main" (je suis dans le dossier des 10 000 premiers fichier a traiter) a le mettre dans un fichier j'ai :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [sophys@nansl2 1]$ grep 'ECHK5' z-gg2mw24a-1.mtr | awk '{A=($1 == 1 ? 9 : 10)};NR > 1 && $1 == 1 {print P1,NR-1,Sum,Sum/P1;Sum=0}{Sum+=$A;P1=$1};END{print P1,NR,Sum,Sum/P1}' > "$CHK/gg2mw24a/First_analyze_ECHK52.txt"
    Et resultat :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
      GNU nano 2.0.9                                               File: First_analyze_ECHK52.txt
     
    24 24 483828 20159.5
    24 48 488436 20351.5
    23 71 520150 22615.2
    24 95 528149 22006.2
    J'avoue que là je comprend pas ....

  8. #28
    Expert confirmé Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 444
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2012
    Messages : 4 444
    Par défaut
    Tant que tu n'appelles pas ta fonction tri, ta variable pathbase n'est pas définie.

    D'ailleurs, on ne définie pas des variables dans une fonction pour l'utiliser ensuite dans une autre.
    Même si cela fonctionne, par principe, il vaut mieux considérer les variables définies dans une fonction comme locale à la fonction. Si on a besoin d'une variable globale, on la définie en dehors du corps d'une fonction.

    Un autre point: a mon avis, tu utilises bien trop souvent les bloc de commande dans ton shell {.....} (sauf si tu les mets pour tes debogages et que ensuite, dans ta version finale, tu les retires).
    En générale, on les utilises quand on veut regrouper plusieurs commande et par exemple rediriger leur sortie vers un même fichier. Pour une seule commande ou la totalité des commande du script, c'est inutile.

    Tout ce que je dis ici, c'est juste des bonnes pratiques qui permettent d'avoir un code plus clair et donc plus simple à faire évoluer, il n'y a rien d'obligatoire la-dedans.

  9. #29
    Expert confirmé Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 308
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 308
    Par défaut
    1. N'y a-t-il pas des espaces dans tes noms de fichiers ?
      Si oui, la boucle "for" les coupe en deux...
    2. grep ECHK5 z-gg2mw24d-2.mtr | awk '{A=($1 == 1 ? ...
      Normalement, tu devrais avoir compris qu'utiliser grep suivi de awk est une maladresse puisque awk fait tout.
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      awk '!/ECHK5/{next;} {A=($1 == 1 ? ...

  10. #30
    Expert confirmé Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 444
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2012
    Messages : 4 444
    Par défaut
    Citation Envoyé par Flodelarab Voir le message
    1. Normalement, tu devrais avoir compris qu'utiliser grep suivi de awk est une maladresse puisque awk fait tout.
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      awk '!/ECHK5/{next;} {A=($1 == 1 ? ...
    ATTENTION: Dans le awk que je donne, il est plutôt impératif ou il ne faut pas utiliser la variable NR comme compteur de ligne.

  11. #31
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2015
    Messages
    82
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2015
    Messages : 82
    Par défaut
    Citation Envoyé par disedorgue Voir le message
    Tant que tu n'appelles pas ta fonction tri, ta variable pathbase n'est pas définie.

    D'ailleurs, on ne définie pas des variables dans une fonction pour l'utiliser ensuite dans une autre.
    Même si cela fonctionne, par principe, il vaut mieux considérer les variables définies dans une fonction comme locale à la fonction. Si on a besoin d'une variable globale, on la définie en dehors du corps d'une fonction.

    Un autre point: a mon avis, tu utilises bien trop souvent les bloc de commande dans ton shell {.....} (sauf si tu les mets pour tes debogages et que ensuite, dans ta version finale, tu les retires).
    En générale, on les utilises quand on veut regrouper plusieurs commande et par exemple rediriger leur sortie vers un même fichier. Pour une seule commande ou la totalité des commande du script, c'est inutile.

    Tout ce que je dis ici, c'est juste des bonnes pratiques qui permettent d'avoir un code plus clair et donc plus simple à faire évoluer, il n'y a rien d'obligatoire la-dedans.
    Oui pour la pathbase je pensais l'avoir redéfini, je ne voulais pas l'utiliser ici c'était une faute de fatigue ....

    Dès que j'ai lu ça je me suis : "oh f*** quel boulet" Merci beaucoup !

    Après oui là c'est plutôt un test avec des debogages et tout pour que j'essaye de comprendre, à la base j'avais justement des {} pour tout mettre dans le même .txt mais ici du coup cela ne sert plus, je pensais enlever les {}.

    Il ne me reste plus qu'à créer un dernier dossier avec la somme moyennée de la dernière colonne des fichiers que je viens créer (first...echk5$j) pour ça pas de souci j'ai compris comment faire avec le awk.

    N'y a-t-il pas des espaces dans tes noms de fichiers ?
    Si oui, la boucle "for" les coupe en deux...
    Nop pas d'espace dans les noms de fichiers !

    awk '!/ECHK5/{next;} {A=($1 == 1 ? ...
    Pour ça je vois à peu près d'accord

  12. #32
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2015
    Messages
    82
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2015
    Messages : 82
    Par défaut
    Dernière question svp.

    Maintenant j'aimerais vérifier un dernier truc.

    Maintenant j'ai toujours les mêmes fichiers qui possèdent les :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    [sophys@nansl3 1]$ grep ECHK5 z-gg2mw24d-2.mtr
      1     tau  0.35  emx   94.71  ECHK5  16286.  16272.  16272.      0.      0.
      2  8  tau  0.73  emx   34.63  ECHK5  16614.  16591.  16591.    390.
      3  8  tau  1.11  emx   18.58  ECHK5  16752.  16723.  16723.    470.
      4  4  tau  1.49  emx   12.29  ECHK5  16868.  16831.  16831.     65.
      5  4  tau  1.87  emx    8.70  ECHK5  16945.  16901.  16901.     73.
      6  4  tau  2.25  emx    6.28  ECHK5  17000.  16952.  16952.     82.
      7  4  tau  2.63  emx    4.86  ECHK5  17041.  16989.  16989.     89.
      8  4  tau  3.01  emx    4.03  ECHK5  17073.  17018.  17018.     88.
      9  4  tau  3.39  emx    3.35  ECHK5  17098.  17041.  17041.     91.
     10  4  tau  3.77  emx    2.78  ECHK5  17118.  17062.  17062.    100.
     11  4  tau  4.15  emx    2.32  ECHK5  17135.  17074.  17074.    100.
     12  4  tau  4.53  emx    1.95  ECHK5  17146.  17079.  17079.     99.
     13  4  tau  4.91  emx    1.63  ECHK5  17150.  17078.  17078.    103.
     14  4  tau  5.29  emx    1.36  ECHK5  17142.  17063.  17063.    109.
     15  4  tau  5.67  emx    1.12  ECHK5  17118.  17026.  17026.    123.
     16  4  tau  6.05  emx    0.92  ECHK5  17072.  16969.  16969.    108.
     17  4  tau  6.43  emx    0.75  ECHK5  16999.  16883.  16883.    127.
     18  4  tau  6.81  emx    0.62  ECHK5  16896.  16765.  16765.    113.
     19  4  tau  7.19  emx    0.51  ECHK5  16760.  16613.  16613.    124.
     20  4  tau  7.57  emx    0.42  ECHK5  16586.  16428.  16428.    127.
     21  4  tau  7.95  emx    0.35  ECHK5  16375.  16213.  16213.    121.
     22  4  tau  8.33  emx    0.30  ECHK5  16125.  15944.  15944.    125.
     23  4  tau  8.71  emx    0.25  ECHK5  15839.  15641.  15641.    128.
     24  4  tau  9.09  emx    0.21  ECHK5  15519.  15307.  15307.    125.
     25  4  tau  9.47  emx    0.18  ECHK5  15169.  14943.  14943.    123.
      1     tau  0.35  emx   73.09  ECHK5  15066.  15068.  15068.      0.      0.
      2  8  tau  0.76  emx   25.78  ECHK5  15414.  15398.  15398.    407.
      3  8  tau  1.17  emx   13.56  ECHK5  15545.  15527.  15527.    505.
      4  4  tau  1.59  emx    8.10  ECHK5  15652.  15630.  15630.     77.
      5  4  tau  2.00  emx    5.84  ECHK5  15724.  15699.  15699.     84.
      6  4  tau  2.41  emx    4.66  ECHK5  15776.  15748.  15748.     86.
      7  4  tau  2.82  emx    3.79  ECHK5  15817.  15786.  15786.     93.
      8  4  tau  3.23  emx    3.13  ECHK5  15851.  15819.  15819.    113.
      9  4  tau  3.65  emx    2.56  ECHK5  15882.  15845.  15845.    113.
     10  4  tau  4.06  emx    2.07  ECHK5  15911.  15873.  15873.    119.
     11  4  tau  4.47  emx    1.66  ECHK5  15938.  15895.  15895.    127.
     12  4  tau  4.88  emx    1.33  ECHK5  15960.  15910.  15910.    126.
     13  4  tau  5.29  emx    1.09  ECHK5  15974.  15914.  15914.    128.
     14  4  tau  5.71  emx    0.90  ECHK5  15972.  15906.  15906.    120.
     15  4  tau  6.12  emx    0.75  ECHK5  15950.  15872.  15872.    127.
     16  4  tau  6.53  emx    0.62  ECHK5  15904.  15813.  15813.    129.
     17  4  tau  6.94  emx    0.52  ECHK5  15830.  15725.  15725.    128.
     18  4  tau  7.35  emx    0.44  ECHK5  15725.  15607.  15607.    127.
     19  4  tau  7.77  emx    0.37  ECHK5  15587.  15454.  15454.    127.
     20  4  tau  8.18  emx    0.32  ECHK5  15414.  15264.  15264.    132.
     21  4  tau  8.59  emx    0.27  ECHK5  15204.  15039.  15039.    135.
     22  4  tau  9.00  emx    0.23  ECHK5  14957.  14777.  14777.    135.
     23  4  tau  9.41  emx    0.20  ECHK5  14676.  14483.  14483.    138.
     24  4  tau  9.83  emx    0.17  ECHK5  14362.  14157.  14157.    128.
      1     tau  0.35  emx   68.25  ECHK5  14142.  14129.  14129.      0.      0.
      2  8  tau  0.77  emx   22.86  ECHK5  14457.  14448.  14448.    352.
      3  8  tau  1.20  emx   12.28  ECHK5  14584.  14570.  14570.    449.
      4  4  tau  1.62  emx    7.69  ECHK5  14688.  14669.  14669.     71.
      5  4  tau  2.05  emx    5.59  ECHK5  14755.  14733.  14733.     75.
      6  4  tau  2.47  emx    4.44  ECHK5  14804.  14779.  14779.     78.
      7  4  tau  2.89  emx    3.59  ECHK5  14842.  14813.  14813.     85.
      8  4  tau  3.32  emx    2.99  ECHK5  14873.  14841.  14841.     95.
      9  4  tau  3.74  emx    2.45  ECHK5  14901.  14865.  14865.    103.
     10  4  tau  4.17  emx    1.98  ECHK5  14925.  14890.  14890.    109.
     11  4  tau  4.59  emx    1.57  ECHK5  14947.  14909.  14909.    113.
     12  4  tau  5.01  emx    1.26  ECHK5  14967.  14926.  14926.    116.
     13  4  tau  5.44  emx    1.02  ECHK5  14980.  14931.  14931.    122.
     14  4  tau  5.86  emx    0.84  ECHK5  14979.  14922.  14922.    125.
     15  4  tau  6.29  emx    0.69  ECHK5  14959.  14893.  14893.    128.
     16  4  tau  6.71  emx    0.58  ECHK5  14918.  14843.  14843.    125.
     17  4  tau  7.13  emx    0.48  ECHK5  14856.  14770.  14770.    131.
     18  4  tau  7.56  emx    0.40  ECHK5  14774.  14674.  14674.    128.
     19  4  tau  7.98  emx    0.34  ECHK5  14671.  14558.  14558.    126.
     20  4  tau  8.41  emx    0.29  ECHK5  14543.  14413.  14413.    130.
     21  4  tau  8.83  emx    0.25  ECHK5  14380.  14234.  14234.    132.
     22  4  tau  9.25  emx    0.21  ECHK5  14177.  14013.  14013.    138.
     23  4  tau  9.68  emx    0.18  ECHK5  13931.  13750.  13750.    124.
      1     tau  0.35  emx   73.37  ECHK5  15712.  15699.  15699.      0.      0.
      2  8  tau  0.77  emx   24.47  ECHK5  16071.  16057.  16057.    373.
      3  8  tau  1.20  emx   12.14  ECHK5  16210.  16194.  16194.    455.
      4  4  tau  1.62  emx    7.35  ECHK5  16327.  16306.  16306.     73.
      5  4  tau  2.05  emx    5.65  ECHK5  16400.  16377.  16377.     76.
      6  4  tau  2.47  emx    4.30  ECHK5  16453.  16424.  16424.     80.
      7  4  tau  2.89  emx    3.23  ECHK5  16493.  16462.  16462.     83.
      8  4  tau  3.32  emx    2.42  ECHK5  16526.  16490.  16490.     96.
      9  4  tau  3.74  emx    1.98  ECHK5  16556.  16517.  16517.    106.
     10  4  tau  4.17  emx    1.66  ECHK5  16582.  16542.  16542.    109.
     11  4  tau  4.59  emx    1.41  ECHK5  16607.  16564.  16564.    115.
     12  4  tau  5.01  emx    1.21  ECHK5  16630.  16580.  16580.    112.
     13  4  tau  5.44  emx    1.05  ECHK5  16650.  16589.  16589.    117.
     14  4  tau  5.86  emx    0.91  ECHK5  16659.  16584.  16584.    123.
     15  4  tau  6.29  emx    0.78  ECHK5  16642.  16552.  16552.    128.
     16  4  tau  6.71  emx    0.68  ECHK5  16591.  16487.  16487.    126.
     17  4  tau  7.13  emx    0.58  ECHK5  16504.  16391.  16391.    127.
     18  4  tau  7.56  emx    0.50  ECHK5  16381.  16259.  16259.    130.
     19  4  tau  7.98  emx    0.43  ECHK5  16222.  16086.  16086.    137.
     20  4  tau  8.41  emx    0.37  ECHK5  16028.  15878.  15878.    128.
     21  4  tau  8.83  emx    0.32  ECHK5  15800.  15635.  15635.    132.
     22  4  tau  9.25  emx    0.28  ECHK5  15539.  15360.  15360.    129.
     23  4  tau  9.68  emx    0.24  ECHK5  15247.  15054.  15054.    131.
     24  4  tau 10.10  emx    0.21  ECHK5  14928.  14724.  14724.    130.
     25  4  tau 10.53  emx    0.18  ECHK5  14583.  14366.  14366.    125.
    Mais maintenant j'aimerais bien faire quelque chose du type :

    ligne tau Energie Energie / Energie (tau = tau0)

    Donc ça donnerait quelque chose comme ça :

    1 0.35 15699 1
    2 0.77 16057 16057/15699

    Et faire au final une moyenne sur toute les valeurs du fichiers.

    Pour au final faire comme dans ce que j'ai fais précédemment, avoir au final la moyenne de tout ça par centralité :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    for i in `seq $3 $4`; do
     j=`expr $i % 20 | bc`
      if [ -f $pathbase-$i.mtr ]; then
        grep 'ECHK5' z-$2-$i.mtr | awk '{A=($1 == 1 ? 9 : 10)};NR > 1 && $1 == 1 {print P1,NR-1,Sum,Sum/P1;Sum=0}{Sum+=$A;P1=$1};END{print P1,NR,Sum,Sum/P1}'>>"$5/ECHK/Analyze/First/First_analyze_ECHK5$j.txt"
      fi
    done
    Comme je fais ici avec le $j.

    Et obtenir un dernier fichier final où je ne possède qu'un fichier par centralité (donc écrit avec mon modulo 20) avec ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    1 0.35 1
    2 0.77  1.02 (par exemple)
    3 ...    .....
    Le truc c'est que faut que j'arrive à faire un truc du style

    Energie/Energie (tau=tau0)

    Puis que j'arrive à faire la moyenne de toutes les Energie/Energie(tau = tau0) pour chaque ligne ...

    Je vois pas comment dire prendre tout les arguments ligne 2 de la colonne 10 pour faire mon opération dessus ...

    Puis après faut définir à chaque fois quand est la ligne 2 (donc après la ligne 1 qui est à un endroit différent à chaque fois etc etc ...).

    On va dire on prend cette donnée brute en faisant toujours le :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    grep ECHK5 z-gg2mw24d-2.mtr | awk '{A=($1 == 1 ? ...
    Ou alors en le faisant directement avec awk ...

  13. #33
    Invité
    Invité(e)
    Par défaut
    une petite remarque :
    le reliquat étant toujours un entier, les capacités arithmétiques du shell sont suffisantes.
    pas besoin de faire intervenir (de manière redondante, qui plus est) des programmes externes.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    for ((i=$3; i<=$4;i++))
    do
       j=$((i%20))

  14. #34
    Expert confirmé Avatar de BufferBob
    Profil pro
    responsable R&D vidage de truites
    Inscrit en
    Novembre 2010
    Messages
    3 041
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : responsable R&D vidage de truites

    Informations forums :
    Inscription : Novembre 2010
    Messages : 3 041
    Par défaut
    <HS>
    méfiance que les boucles du type for ((i=0; i<x; i++)) en bash sont particulièrement lentes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $ time for ((i=0; i<1000000; i++)); do :; done
    real    0m11.310s
    $ time for i in {0..1000000}; do :; done
    real    0m6.942s
    $ time for i in $(seq 1000000); do :; done
    real    0m6.037s
    comme quoi des fois un bon p'tit appel externe...
    </HS>

  15. #35
    Expert confirmé Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 444
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2012
    Messages : 4 444
    Par défaut
    De toute façon, pour moi, il peut tout faire dans le awk ou il aurait carrément dû faire son projet dans un langage de script comme perl ou python.

    Par contre, j'ai rien compris du besoin

    Un exemple clair ne serait pas un luxe (données de départ, données à l'arrivée, et les étapes tel qu'on les ferait à la main).

    Par rapport au besoin initial, quel est le besoin final ?
    Car là, j'ai l'impression que l'on passe par plein d'étapes intermédiaires avec plein de fichiers intermédiaires pour obtenir au final un seul fichier utile.

  16. #36
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2015
    Messages
    82
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2015
    Messages : 82
    Par défaut
    J'imagine qu'on peut tout faire dans le awk ^^'

    Alors pour les besoins :

    J'ai deux dossiers, un qui contient presque 10 000 fichiers (certaines simus ne se font pas ) et l'autre qui contient le reste jusque $NMF.

    Chacun de ces fichiers s'appellent z-gg2mw24a(b,c,d)-$i qui vq de 1 à $NMF.

    Ensuite, Dans chacun de ces fichiers j'ai des choses du type :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    [sophys@nansl3 1]$ grep ECHK5 z-gg2mw24d-2.mtr
      1     tau  0.35  emx   94.71  ECHK5  16286.  16272.  16272.      0.      0.
      2  8  tau  0.73  emx   34.63  ECHK5  16614.  16591.  16591.    390.
      3  8  tau  1.11  emx   18.58  ECHK5  16752.  16723.  16723.    470.
      4  4  tau  1.49  emx   12.29  ECHK5  16868.  16831.  16831.     65.
      5  4  tau  1.87  emx    8.70  ECHK5  16945.  16901.  16901.     73.
      6  4  tau  2.25  emx    6.28  ECHK5  17000.  16952.  16952.     82.
      7  4  tau  2.63  emx    4.86  ECHK5  17041.  16989.  16989.     89.
      8  4  tau  3.01  emx    4.03  ECHK5  17073.  17018.  17018.     88.
      9  4  tau  3.39  emx    3.35  ECHK5  17098.  17041.  17041.     91.
     10  4  tau  3.77  emx    2.78  ECHK5  17118.  17062.  17062.    100.
     11  4  tau  4.15  emx    2.32  ECHK5  17135.  17074.  17074.    100.
     12  4  tau  4.53  emx    1.95  ECHK5  17146.  17079.  17079.     99.
     13  4  tau  4.91  emx    1.63  ECHK5  17150.  17078.  17078.    103.
     14  4  tau  5.29  emx    1.36  ECHK5  17142.  17063.  17063.    109.
     15  4  tau  5.67  emx    1.12  ECHK5  17118.  17026.  17026.    123.
     16  4  tau  6.05  emx    0.92  ECHK5  17072.  16969.  16969.    108.
     17  4  tau  6.43  emx    0.75  ECHK5  16999.  16883.  16883.    127.
     18  4  tau  6.81  emx    0.62  ECHK5  16896.  16765.  16765.    113.
     19  4  tau  7.19  emx    0.51  ECHK5  16760.  16613.  16613.    124.
     20  4  tau  7.57  emx    0.42  ECHK5  16586.  16428.  16428.    127.
     21  4  tau  7.95  emx    0.35  ECHK5  16375.  16213.  16213.    121.
     22  4  tau  8.33  emx    0.30  ECHK5  16125.  15944.  15944.    125.
     23  4  tau  8.71  emx    0.25  ECHK5  15839.  15641.  15641.    128.
     24  4  tau  9.09  emx    0.21  ECHK5  15519.  15307.  15307.    125.
     25  4  tau  9.47  emx    0.18  ECHK5  15169.  14943.  14943.    123.
      1     tau  0.35  emx   73.09  ECHK5  15066.  15068.  15068.      0.      0.
      2  8  tau  0.76  emx   25.78  ECHK5  15414.  15398.  15398.    407.
      3  8  tau  1.17  emx   13.56  ECHK5  15545.  15527.  15527.    505.
      4  4  tau  1.59  emx    8.10  ECHK5  15652.  15630.  15630.     77.
      5  4  tau  2.00  emx    5.84  ECHK5  15724.  15699.  15699.     84.
      6  4  tau  2.41  emx    4.66  ECHK5  15776.  15748.  15748.     86.
      7  4  tau  2.82  emx    3.79  ECHK5  15817.  15786.  15786.     93.
      8  4  tau  3.23  emx    3.13  ECHK5  15851.  15819.  15819.    113.
      9  4  tau  3.65  emx    2.56  ECHK5  15882.  15845.  15845.    113.
     10  4  tau  4.06  emx    2.07  ECHK5  15911.  15873.  15873.    119.
     11  4  tau  4.47  emx    1.66  ECHK5  15938.  15895.  15895.    127.
     12  4  tau  4.88  emx    1.33  ECHK5  15960.  15910.  15910.    126.
     13  4  tau  5.29  emx    1.09  ECHK5  15974.  15914.  15914.    128.
     14  4  tau  5.71  emx    0.90  ECHK5  15972.  15906.  15906.    120.
     15  4  tau  6.12  emx    0.75  ECHK5  15950.  15872.  15872.    127.
     16  4  tau  6.53  emx    0.62  ECHK5  15904.  15813.  15813.    129.
     17  4  tau  6.94  emx    0.52  ECHK5  15830.  15725.  15725.    128.
     18  4  tau  7.35  emx    0.44  ECHK5  15725.  15607.  15607.    127.
     19  4  tau  7.77  emx    0.37  ECHK5  15587.  15454.  15454.    127.
     20  4  tau  8.18  emx    0.32  ECHK5  15414.  15264.  15264.    132.
     21  4  tau  8.59  emx    0.27  ECHK5  15204.  15039.  15039.    135.
     22  4  tau  9.00  emx    0.23  ECHK5  14957.  14777.  14777.    135.
     23  4  tau  9.41  emx    0.20  ECHK5  14676.  14483.  14483.    138.
     24  4  tau  9.83  emx    0.17  ECHK5  14362.  14157.  14157.    128.
      1     tau  0.35  emx   68.25  ECHK5  14142.  14129.  14129.      0.      0.
      2  8  tau  0.77  emx   22.86  ECHK5  14457.  14448.  14448.    352.
      3  8  tau  1.20  emx   12.28  ECHK5  14584.  14570.  14570.    449.
      4  4  tau  1.62  emx    7.69  ECHK5  14688.  14669.  14669.     71.
      5  4  tau  2.05  emx    5.59  ECHK5  14755.  14733.  14733.     75.
      6  4  tau  2.47  emx    4.44  ECHK5  14804.  14779.  14779.     78.
      7  4  tau  2.89  emx    3.59  ECHK5  14842.  14813.  14813.     85.
      8  4  tau  3.32  emx    2.99  ECHK5  14873.  14841.  14841.     95.
      9  4  tau  3.74  emx    2.45  ECHK5  14901.  14865.  14865.    103.
     10  4  tau  4.17  emx    1.98  ECHK5  14925.  14890.  14890.    109.
     11  4  tau  4.59  emx    1.57  ECHK5  14947.  14909.  14909.    113.
     12  4  tau  5.01  emx    1.26  ECHK5  14967.  14926.  14926.    116.
     13  4  tau  5.44  emx    1.02  ECHK5  14980.  14931.  14931.    122.
     14  4  tau  5.86  emx    0.84  ECHK5  14979.  14922.  14922.    125.
     15  4  tau  6.29  emx    0.69  ECHK5  14959.  14893.  14893.    128.
     16  4  tau  6.71  emx    0.58  ECHK5  14918.  14843.  14843.    125.
     17  4  tau  7.13  emx    0.48  ECHK5  14856.  14770.  14770.    131.
     18  4  tau  7.56  emx    0.40  ECHK5  14774.  14674.  14674.    128.
     19  4  tau  7.98  emx    0.34  ECHK5  14671.  14558.  14558.    126.
     20  4  tau  8.41  emx    0.29  ECHK5  14543.  14413.  14413.    130.
     21  4  tau  8.83  emx    0.25  ECHK5  14380.  14234.  14234.    132.
     22  4  tau  9.25  emx    0.21  ECHK5  14177.  14013.  14013.    138.
     23  4  tau  9.68  emx    0.18  ECHK5  13931.  13750.  13750.    124.
      1     tau  0.35  emx   73.37  ECHK5  15712.  15699.  15699.      0.      0.
      2  8  tau  0.77  emx   24.47  ECHK5  16071.  16057.  16057.    373.
      3  8  tau  1.20  emx   12.14  ECHK5  16210.  16194.  16194.    455.
      4  4  tau  1.62  emx    7.35  ECHK5  16327.  16306.  16306.     73.
      5  4  tau  2.05  emx    5.65  ECHK5  16400.  16377.  16377.     76.
      6  4  tau  2.47  emx    4.30  ECHK5  16453.  16424.  16424.     80.
      7  4  tau  2.89  emx    3.23  ECHK5  16493.  16462.  16462.     83.
      8  4  tau  3.32  emx    2.42  ECHK5  16526.  16490.  16490.     96.
      9  4  tau  3.74  emx    1.98  ECHK5  16556.  16517.  16517.    106.
     10  4  tau  4.17  emx    1.66  ECHK5  16582.  16542.  16542.    109.
     11  4  tau  4.59  emx    1.41  ECHK5  16607.  16564.  16564.    115.
     12  4  tau  5.01  emx    1.21  ECHK5  16630.  16580.  16580.    112.
     13  4  tau  5.44  emx    1.05  ECHK5  16650.  16589.  16589.    117.
     14  4  tau  5.86  emx    0.91  ECHK5  16659.  16584.  16584.    123.
     15  4  tau  6.29  emx    0.78  ECHK5  16642.  16552.  16552.    128.
     16  4  tau  6.71  emx    0.68  ECHK5  16591.  16487.  16487.    126.
     17  4  tau  7.13  emx    0.58  ECHK5  16504.  16391.  16391.    127.
     18  4  tau  7.56  emx    0.50  ECHK5  16381.  16259.  16259.    130.
     19  4  tau  7.98  emx    0.43  ECHK5  16222.  16086.  16086.    137.
     20  4  tau  8.41  emx    0.37  ECHK5  16028.  15878.  15878.    128.
     21  4  tau  8.83  emx    0.32  ECHK5  15800.  15635.  15635.    132.
     22  4  tau  9.25  emx    0.28  ECHK5  15539.  15360.  15360.    129.
     23  4  tau  9.68  emx    0.24  ECHK5  15247.  15054.  15054.    131.
     24  4  tau 10.10  emx    0.21  ECHK5  14928.  14724.  14724.    130.
     25  4  tau 10.53  emx    0.18  ECHK5  14583.  14366.  14366.    125.
    Donc maintenant ce que je veux faire. (En plusieurs ou en une seule action)

    Regrouper ensemble tout les fichiers z-gg2mw24d-$j qui existent avec j = $i mod 20.

    Donc pour ça je faisais ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    for i in `seq $4 $5`; do
      j=`expr $i % 20 | bc`
      if [ -f $pathbase-$i.mtr ]; then
        echo "" >> "$1/ECHK5$j.txt"
        echo "**********************" >> "$1/ECHK5$j.txt" 
        echo " File $i" >> "$1/ECHK5$j.txt"
        echo "**********************" >> "$1/ECHK5$j.txt"
        echo "">> "$1/ECHK5$j.txt"
        echo "`grep 'ECHK5' z-$2-$i.mtr`">> "$1/ECHK5$j.txt" 
      fi
    done
    (en plus des autres choses pour mon analyse)

    Après avoir regroupé chacun des fichiers modulé 20, je veux faire pour chacune des lignes trouvé par le grep

    10 ème colonne ligne voulu: 9 ème colonne ligne 1

    Pour avoir Energy: Energy (tau=tau0).

    Après avoir fait ceci pour toute les lignes je veux regrouper toutes les valeurs dans chaque fichiers modulé en faisant une moyenne.

    Par exemple pour le fichier 0 que j'ai créé pour montrer j'ai toutes ces centralités :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    ##########################################################################
    ##########################################################################
               File /scratch/theoric2/werner/public/outp/gg2mw24d/1                            
    ##########################################################################
    ##########################################################################
    ##########################################################################
    ##########################################################################
               File /scratch/theoric2/werner/public/outp/gg2mw24d/2                            
    ##########################################################################
    ##########################################################################
     
     
    **********************
     File 10100
    **********************
     
     
     
    **********************
     File 10260
    **********************
     
     
     
    **********************
     File 10420
    **********************
     
      1     tau  0.35  emx   24.98  ECHK5    107.    107.    107.      0.      0.
      2  8  tau  0.53  emx   13.19  ECHK5    108.    107.    107.     80.
      3  4  tau  0.72  emx    7.33  ECHK5    109.    109.    109.     18.
      4  4  tau  0.90  emx    4.05  ECHK5    110.    109.    109.     20.
      5  4  tau  1.09  emx    2.28  ECHK5    110.    109.    109.     21.
      6  2  tau  1.27  emx    1.38  ECHK5    109.    108.    108.      5.
      7  2  tau  1.45  emx    0.96  ECHK5    109.    109.    109.      5.
      8  2  tau  1.64  emx    0.66  ECHK5    109.    109.    109.      6.
      9  2  tau  1.82  emx    0.45  ECHK5    110.    109.    109.      7.
     10  2  tau  2.01  emx    0.33  ECHK5    110.    110.    110.      6.
     11  2  tau  2.19  emx    0.26  ECHK5    111.    110.    110.      8.
     12  2  tau  2.37  emx    0.20  ECHK5    111.    111.    111.      8.
     
    **********************
     File 10580
    **********************
     
     
     
    **********************
     File 10740
    **********************
     
     
     
    **********************
     File 10900
    **********************
     
     
     
    **********************
     File 11060
    **********************
     
     
     
    **********************
     File 11220
    **********************
     
     
     
    **********************
     File 11380
    **********************
     
     
     
    **********************
     File 11540
    **********************
     
     
     
    **********************
     File 11700
    **********************
     
     
     
    **********************
     File 11860
    **********************
     
     
     
    **********************
     File 12020
    **********************
     
      1     tau  0.35  emx   25.83  ECHK5    144.    144.    144.      0.      0.
      2  8  tau  0.49  emx   15.21  ECHK5    145.    145.    145.    139.
      3  4  tau  0.62  emx    8.48  ECHK5    145.    145.    145.     29.
      4  4  tau  0.76  emx    5.02  ECHK5    146.    146.    146.     34.
      5  4  tau  0.89  emx    3.63  ECHK5    146.    146.    146.     39.
      6  4  tau  1.03  emx    2.72  ECHK5    147.    147.    147.     48.
      7  2  tau  1.17  emx    2.04  ECHK5    148.    148.    148.      8.
      8  2  tau  1.30  emx    1.50  ECHK5    148.    148.    148.      7.
      9  2  tau  1.44  emx    1.14  ECHK5    148.    148.    148.      9.
     10  2  tau  1.57  emx    0.92  ECHK5    148.    148.    148.     10.
     11  2  tau  1.71  emx    0.72  ECHK5    148.    148.    148.     10.
     12  2  tau  1.85  emx    0.55  ECHK5    149.    148.    148.     11.
     13  2  tau  1.98  emx    0.44  ECHK5    149.    148.    148.     12.
     14  2  tau  2.12  emx    0.38  ECHK5    149.    148.    148.     13.
     15  2  tau  2.25  emx    0.33  ECHK5    149.    149.    149.     15.
     16  2  tau  2.39  emx    0.28  ECHK5    150.    149.    149.     15.
     17  2  tau  2.53  emx    0.23  ECHK5    150.    149.    149.     15.
     18  2  tau  2.66  emx    0.20  ECHK5    149.    149.    149.     16.
     19  2  tau  2.80  emx    0.18  ECHK5    148.    147.    147.     15.
     
    **********************
     File 12180
    **********************
     
     
     
    **********************
     File 12340
    **********************
     
     
     
    **********************
     File 12500
    **********************
     
     
     
    **********************
     File 12660
    **********************
    Bon bien sur ici j'ai bien montré les différences entre les fichiers, certains amènent l'hydro, d'autres non ...
    Donc si on prend que les valeurs qui nous intéressent ici (avec un grep par exemple) je trouve :

    Et maintenant ce que je veux c'est faire :

    à chaque fois que ça reprend un nouveau cycle, je fais :

    10 ème colonne ligne voulu: 9 ème colonne ligne 1 (car tout est décalé pour la première ligne comme vu déjà précédemment)
    Pour avoir Energy: Energy (tau=tau0).

    Et ensuite je fais une moyenne de tout ça pour obtenir à la fin quelque chose du type :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    tau Energy/Energy(tau=tau0)
     
    tau0 1
    tau1  moyenne de tout les Energy (tau1)/Energy(tau0)
    tau2  moyenne de tout les Energy (tau2)/Energy(tau0)
    tau3 etc etc ...
    J'espère que c'est un peu plus compréhensible. Seul le dernier fichier est important pour moi

  17. #37
    Expert confirmé Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 308
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 308
    Par défaut
    Ce n'est pas plus compréhensible pour moi.

    "Tout faire dans awk". En voilà une joli expression. Mais si on croit que cela signifie "tout faire dans une ligne de commande awk", c'est faux. On peut écrire un fichier plat avec un shebang awk et rendre le fichier exécutable afin qu'il se comporte de façon autonome.

    Exemple:
    Code bash : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    $ cat compteurIP.awk
    #!/usr/bin/awk -f
     
    /^[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+/{
        nbIP[$1]++;
    }
     
    END{
        for (i in nbIP)
            print i, nbIP[i];
    }
    $ ./compteurIP.awk fichier
    192.168.0.1 7
    192.168.0.122 3
    192.168.0.97 4

  18. #38
    Expert confirmé Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 444
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2012
    Messages : 4 444
    Par défaut
    Peux-tu nous détailler le calcul de tau2 par rapport au fichier que tu as fourni, que l'on est un exemple de comment tu calcul ça ?

    Parce-que pour l'instant, je ne vois pas bien l’intérêt du modulo 20 puisqu'au final tu moyennes tout.

  19. #39
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2015
    Messages
    82
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2015
    Messages : 82
    Par défaut
    Je veux vingt fichiers différents au final, un pour chaque centralité, (ou alors un fichier final avec toutes les centralités dedans mais les Energy/Energy(tau0) seraient séparées)

    On va dire je n'ai que deux centralités, avec les fichiers suivants :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    z-gg2mw24d-1.mtr
    z-gg2mw24d-21.mtr
    z-gg2mw24d-41.mtr
    Pour la centralité 1,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    z-gg2mw24d-2.mtr
    z-gg2mw24d-22.mtr
    z-gg2mw24d-42.mtr
    Pour la centralité 2.

    Je fais un mod 20 pour écrire ce que je veux dans deux fichiers différents,

    un pour la centralité 1 et un pour la centralité 2.

    On va dire que je n'ai que :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
      1     tau  0.35  emx   25.83  ECHK5    144.    144.    144.      0.      0.
      2  8  tau  0.49  emx   15.21  ECHK5    145.    145.    145.    139.
      3  4  tau  0.62  emx    8.48  ECHK5    145.    145.    145.     29.
      4  4  tau  0.76  emx    5.02  ECHK5    146.    146.    146.     34.
      1     tau  0.35  emx   24.98  ECHK5    107.    107.    107.      0.      0.
      2  8  tau  0.53  emx   13.19  ECHK5    108.    107.    107.     80.
      3  4  tau  0.72  emx    7.33  ECHK5    109.    109.    109.     18.
      1     tau  0.35  emx    6.87  ECHK5    122.    122.    122.      0.      0.
      2  8  tau  0.62  emx    3.02  ECHK5    124.    124.    124.    124.
      3  8  tau  0.89  emx    1.66  ECHK5    125.    125.    125.    165.
    Qui m'intéresse pour les trois fichiers de centralité 1.

    Ce que je veux :

    Dans mon fichier final :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    tau            Energy/Energy(tau=tau0)
    0.35           1
    0.49           145/144
    0.53           107/107
    0.62           (145/144+124/122)/2
    0.72           ....
    etc             ....
    De même pour le fichier de centralité deux (chacun dans des fichiers différents ou alors ensemble mais avec une séparation)

    Sachant que j'ai plusieurs fichiers de la même centralité, que les tau ne sont pas forcément les mêmes etc ... c'est un peu dur de trier tout ça de tête ^^'.

    Est-ce un peu mieux ?

    Après bah il faut faire ça pour 20 fichiers différents avec beaucoup plus de tau différents et d'énergie etc etc ...

    Pour un calcul détaillé de tau2 et bien c'est le tau le plus proche de 0.35 après tau1 pour l'énergie avec le fichier que j'ai :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
      1     tau  0.35  emx   73.37  ECHK5  15712.  15699.  15699.      0.      0.
    2  8  tau  0.77  emx   24.47  ECHK5  16071.  16057.  16057.    373.
      1     tau  0.35  emx   68.25  ECHK5  14142.  14129.  14129.      0.      0.
      2  8  tau  0.77  emx   22.86  ECHK5  14457.  14448.  14448.    352.
    Donc le résultat serait :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    0.77                (16057/15699 + 14448/14129)/2
    Mais là je n'ai qu'un seul fichiers donc il faut que je le fasse dans cette exemple avec tout les fichiers j = i mod 20 = 2

  20. #40
    Expert confirmé Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 308
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 308
    Par défaut
    Tu ne définis pas les termes que tu emploies. C'est pas bien. Surtout pour un scientifique.

    Bon, voilà ce que j'ai compris:
    • Quand le 11ème champ est nul (12ème putatif ou quand le 2ème champ est "tau"), on définit le 9ème champ comme l'Energy pour Tau0.
    • Pour les autres lignes, on divise le 10ème champ par la valeur stockée.
    • Comme on obtient plusieurs valeurs pour un tau donné, on en fait la moyenne.


    Avec awk et toujours avec ses tableaux magiques, on obtient:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    $ cat nrj.txt
      1     tau  0.35  emx   25.83  ECHK5    144.    144.    144.      0.      0.
      2  8  tau  0.49  emx   15.21  ECHK5    145.    145.    145.    139.
      3  4  tau  0.62  emx    8.48  ECHK5    145.    145.    145.     29.
      4  4  tau  0.76  emx    5.02  ECHK5    146.    146.    146.     34.
      1     tau  0.35  emx   24.98  ECHK5    107.    107.    107.      0.      0.
      2  8  tau  0.53  emx   13.19  ECHK5    108.    107.    107.     80.
      3  4  tau  0.72  emx    7.33  ECHK5    109.    109.    109.     18.
      1     tau  0.35  emx    6.87  ECHK5    122.    122.    122.      0.      0.
      2  8  tau  0.62  emx    3.02  ECHK5    124.    124.    124.    124.
      3  8  tau  0.89  emx    1.66  ECHK5    125.    125.    125.    165.
    $ awk '($2=="tau"){tau0=$3;E0=$9;next;} {sum[$4] += ($10/E0); nb[$4]++;} END{print tau0";1";for (v in nb) print v";"sum[v]/nb[v];}' nrj.txt |sort -n -k1 -t';'
    0.35;1
    0.49;1.00694
    0.53;1
    0.62;1.01167
    0.72;1.01869
    0.76;1.01389
    0.89;1.02459
    Quelques remarques:
    • Ton fichier d'entrée est toujours assez sale. Tu devrais supprimer le décalage de la première ligne en mettant une valeur artificielle pour combler le trou : -1 ou k ou Toto.
    • Ou trouver l'origine de ce décalage vilain. Et réparer.
    • Si tu considères un tau1, puis un tau2, la moyenne sera-t-elle pour des tau supérieurs ?

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 3 PremièrePremière 123 DernièreDernière

Discussions similaires

  1. Problème avec l'utilisation de grep
    Par fgalves dans le forum Shell et commandes GNU
    Réponses: 5
    Dernier message: 08/11/2006, 00h49
  2. Utilisation de grep
    Par julien.63 dans le forum Shell et commandes GNU
    Réponses: 12
    Dernier message: 07/08/2006, 18h46
  3. [Sécurité] utiliser session ou non ?
    Par tigzirt dans le forum Langage
    Réponses: 5
    Dernier message: 12/05/2006, 15h48
  4. Réponses: 4
    Dernier message: 10/05/2006, 11h36
  5. [MySQL] Problème de connexion car mysql utilise un port non standard
    Par SsinedD dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 01/03/2006, 15h27

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo