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 :

Tri (je ne veux que les chiffres)


Sujet :

Shell et commandes GNU

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

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2015
    Messages : 82
    Points : 44
    Points
    44
    Par défaut Tri (je ne veux que les chiffres)
    Bonjour,

    Alors Ce que je voudrais faire est j'espere simple, mais je n'ai rien trouver alors que j'ai chercher plusieurs jours (ou alors je suis vraiment mauvais pour la recherche sur internet ..)

    J'ai un fichier comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    [sophys@nansl3 histo]$ cat To_Transform
    	    Double_t pt_7GeV_Phi_bin_center[2] = {0.9185,1.6685};
    		Double_t v2_7GeV_Phi_values[2] = {0.0478335,-0.049273};
    		Double_t v2_7GeV_Phi_stat_error[2] = {0.0247765,0.0605828};
    		Double_t v2_7GeV_Phi_syst_low_error[2] = {0.00964971,0.0232742};
    		Double_t v2_7GeV_Phi_syst_high_error[2] = {0.00910412,0.0277136};
    		Double_t v2_7GeV_Phi_syst_global_error = 0.00369459;
    On reconnait le Root derriere . Bref, je veux prendre les valeurs des histogrammes pour les mettre autre part. Je ne souhaite donc que les nombres. Ici par exemple j'aimerai avoir en fichier de sortie quelques chose comme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    [sophys@nansl3 histo]$ cat Results
    0.9185,1.6685
    0.0478335,-0.049273
    0.0247765,0.0605828
    0.00964971,0.0232742
    0.00910412,0.0277136
    0.00369459
    Car j'aimerais bien utiliser ces variables dans un autre fichier dans un autre langage ..

    Les nombres peuvent etre separe par des virgules, par des espaces, qu'importe. Ensuite j'aimerais intervertir les lignes et les colonnes mais ca je chercherais en temps voulu ne me donner pas de reponse ou autre pour cette partie la. Je souhaite chercher par moi meme avant.

    Par contre je ne trouve vraiment pas comment passer de To_Transform a Result avec du code ( car j'ai beaucoup de lignes comme cela a "transformer")

    Merci d'avance,

    PS : Si je n'ai pas ete assez precis ou si vous avez besoin de quelques choses d'autre je repondrais sans soucis !

  2. #2
    Expert éminent

    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    1 946
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 1 946
    Points : 6 276
    Points
    6 276
    Par défaut
    Salut,

    Un truc comme ça ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    $ cat fich 
    	    Double_t pt_7GeV_Phi_bin_center[2] = {0.9185,1.6685};
    		Double_t v2_7GeV_Phi_values[2] = {0.0478335,-0.049273};
    		Double_t v2_7GeV_Phi_stat_error[2] = {0.0247765,0.0605828};
    		Double_t v2_7GeV_Phi_syst_low_error[2] = {0.00964971,0.0232742};
    		Double_t v2_7GeV_Phi_syst_high_error[2] = {0.00910412,0.0277136};
    		Double_t v2_7GeV_Phi_syst_global_error = 0.00369459;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    $ grep -Po '.*= {?\K[^};]*' fich 
    0.9185,1.6685
    0.0478335,-0.049273
    0.0247765,0.0605828
    0.00964971,0.0232742
    0.00910412,0.0277136
    0.0036945
    $ man woman
    Il n'y a pas de page de manuel pour woman.

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

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2015
    Messages : 82
    Points : 44
    Points
    44
    Par défaut
    Mais c'est parfait ÇA !

    Est-ce que tu peux expliquer un peu plus en details le grep s'il te plait ? Cela me serait bien utile.

    Pour ce qui est de la deuxieme partie concernant les translations j'ai bien reussi donc j'ai mis en resolu meme si je suis assez curieux de la reponse concernant le grep.

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

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

    Informations forums :
    Inscription : Novembre 2010
    Messages : 3 035
    Points : 8 400
    Points
    8 400
    Par défaut
    salut,

    Citation Envoyé par Gagzkul Voir le message
    Est-ce que tu peux expliquer un peu plus en details le grep s'il te plait ? Cela me serait bien utile.
    d'abord les options passée à grep :
    • -P demande d'utiliser les regex compatibles Perl
    • -o demande de n'afficher que le résultat de la recherche (pas la ligne toute entière donc)


    vient ensuite la regex en elle-même :
    • le switch \K en plein milieu sert en gros à couper le résultat de la regex en deux; la partie à gauche est laissée de côté, la partie à droite est retenue (et donc affichée), ce switch ne fonctionne qu'avec l'option -P
    • .*= {? sert donc à identifier le début de la ligne jusqu'au =, avec éventuellement une accolade (facultative ?)
    • [^};]* permet de matcher ce que l'on va réellement afficher (grâce au combo -o/\K), on prend donc tous les caractères qui ne sont pas } ou ;, c'est à dire tous les caractères jusqu'à la prochaine accolade ou le prochain point-virgule (exclus)

  5. #5
    Expert éminent

    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    1 946
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 1 946
    Points : 6 276
    Points
    6 276
    Par défaut
    Salut,

    Citation Envoyé par BufferBob Voir le message
    salut,


    d'abord les options passée à grep :
    • -P demande d'utiliser les regex compatibles Perl
    • -o demande de n'afficher que le résultat de la recherche (pas la ligne toute entière donc)


    vient ensuite la regex en elle-même :
    • le switch \K en plein milieu sert en gros à couper le résultat de la regex en deux; la partie à gauche est laissée de côté, la partie à droite est retenue (et donc affichée), ce switch ne fonctionne qu'avec l'option -P
    • .*= {? sert donc à identifier le début de la ligne jusqu'au =, avec éventuellement une accolade (facultative ?)
    • [^};]* permet de matcher ce que l'on va réellement afficher (grâce au combo -o/\K), on prend donc tous les caractères qui ne sont pas } ou ;, c'est à dire tous les caractères jusqu'à la prochaine accolade ou le prochain point-virgule (exclus)
    Merci.

    J'aurai sûrement été moins explicite, surtout en étant aussi concis
    $ man woman
    Il n'y a pas de page de manuel pour woman.

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

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2015
    Messages : 82
    Points : 44
    Points
    44
    Par défaut
    Merci beaucoup pour cette explication parfaite ! J'ai tout compris !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. TEdit ne prends que les chiffres
    Par bullrot dans le forum C++Builder
    Réponses: 7
    Dernier message: 26/11/2007, 19h09
  2. [Tedit]Saisir que les chiffres
    Par sofianoo dans le forum Delphi
    Réponses: 6
    Dernier message: 20/06/2007, 14h12
  3. autoriser que les chiffres dans un champ
    Par ph_anrys dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 31/08/2006, 16h17
  4. un input qui accepte que les chiffres ?
    Par VerrNum dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 27/03/2006, 13h28
  5. un champ n'accepte que les chiffres....
    Par fadex dans le forum Général JavaScript
    Réponses: 11
    Dernier message: 19/10/2005, 14h18

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