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 :

[bash] Substituer le résultat d'une commande dans une variable en texte


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2013
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2013
    Messages : 8
    Par défaut [bash] Substituer le résultat d'une commande dans une variable en texte
    Bonjour,

    Je cherche à remplacer une variable par le résultat de sa commande pour la réutiliser ensuite mais en ne sélectionnant qu'une partie de la ligne de réponse.

    Voici ce que je cherche à faire:
    result="awk 'NR==2' infile"
    echo "${result:5}" >> outfile

    Le problème est que la command "${result:5}" va couper extraire le texte dans "awk 'NR==2' infile" mais dans son résultat.

    Pour être plus explicite:
    infile :
    R2001001
    39.47|0.85|1535|0
    40.64|0.58|1534|0
    39.20|1.21|1533|0
    39.56|1.66|1548|0
    37.84|0.67|2574|0

    result est la ligne 2
    39.47|0.85|1535|0

    et je cherche à sélectionner une partie de cette ligne uniquement


    Est-ce que quelqu'un sait comment faire cela?

    Merci

  2. #2
    Expert confirmé

    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
    Par défaut
    Salut,

    Quelle partie veux-tu extraire exactement ?

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2013
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2013
    Messages : 8
    Par défaut
    En fait, j'ai ce bloc de résultat un bon milier de fois et je veux extraire à chaque fois le dernier bloc (0 dans l'exemple) de chaque ligne pour ensuite réorganiser les données.

  4. #4
    Expert confirmé

    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
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    $ cat plop 
    R2001001
    39.47|0.85|1535|0
    40.64|0.58|1534|0
    39.20|1.21|1533|0
    39.56|1.66|1548|0
    37.84|0.67|2574|0
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $ awk 'NR==2' plop 
    39.47|0.85|1535|0
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $ awk -F'|' 'NR==2 { print $NF }' plop 
    0

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2013
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2013
    Messages : 8
    Par défaut
    Excuses-moi pour les questions bêtes, mais plop est le nom que tu donnes à la variable? Et que fait cat?
    Autre question:
    - comment je fais du coups pour appeler mon fichier "infile" que je dois questionner?
    - n'y a t'il pas un moyen simple avec echo ou eval de considérer le résultat d'une commande comme du texte? Comme ça je pourrais réutiliser le résultat dans une autre commande sans qu'il aille lire la première commande?

    Merci

  6. #6
    Expert confirmé

    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
    Par défaut
    Citation Envoyé par Erculpoiro Voir le message
    mais plop est le nom que tu donnes à la variable?
    Non, c'est le nom que j'ai donné à mon fichier pour l'exemple.

    Et que fait cat?
    Là aussi, c'est juste pour l'exemple et afficher le contenu de mon fichier "plop"

    Autre question, comment je fais du coups pour appeler mon fichier "infile" que je dois questionner?
    Pour reprendre ton exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    awk -F'|' 'NR==2 { print $NF }' infile > outfile

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

Discussions similaires

  1. [XL-2007] Afficher une checkbox dans une feuille si une checkbox d'une autre feuille est cochée
    Par JessieCoutas dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 18/08/2009, 13h35
  2. Réponses: 4
    Dernier message: 02/07/2008, 11h32
  3. [POO] dans une classe, appeler une fonction dans une méthode
    Par arnaudperfect dans le forum Langage
    Réponses: 3
    Dernier message: 26/08/2007, 23h04
  4. Envoyer une formulaire dans une page dans une Frame
    Par zooffy dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 29/06/2007, 10h13
  5. Recherche une valeur d'une cellule dans une colonne d'une autre feuille
    Par kourria dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 21/06/2007, 13h48

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