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 :

declaration variable numerique


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Février 2008
    Messages
    55
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 55
    Par défaut declaration variable numerique
    Bonjour, j'ai écrit ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var=5;  awk  '{ if (NR==4) print $($var)}' Feb.xls
    Mais la sélection se fait sur toute la ligne 5 et moi je veux seulement la cellule. Quel est le problème?

  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,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var=5; awk '{ if (NR==4) print { '"$var"' }}' Feb.xls

  3. #3
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 658
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 658
    Par défaut
    non, utilisez l'option -v
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var=5; awk -vfield="$var" '{ if (NR==4){ print $field }}' Feb.xls
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  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
    Citation Envoyé par N_BaH Voir le message
    non, utilisez l'option -v
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var=5; awk -vfield="$var" '{ if (NR==4){ print $field }}' Feb.xls
    Salut,

    Les deux peuvent être utilisés

    Par contre pour ta syntaxe sans le "$" à "field" ça le fait mieux, non ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var=5; awk -vfield="$var" '{ if (NR==4){ print field }}'

  5. #5
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 658
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 658
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Par contre pour ta syntaxe sans le "$" à "field" ça le fait mieux, non ?
    pas s'il s'agit d'afficher le contenu du cinquième champ !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    awk -vfield=5 '{print $field}' <<<"abc def ghi klm nop qrs tuv wxyz"
    nop
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  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 N_BaH Voir le message
    pas s'il s'agit d'afficher le contenu du cinquième champ !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    awk -vfield=5 '{print $field}' <<<"abc def ghi klm nop qrs tuv wxyz"
    nop
    Sous cette forme oui, mais pas dans ta syntaxe précédente


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $ var=5; awk -vfield="$var" '{ if (NR==6){ print $field }}' foo.sh 
    
    $ var=5; awk -vfield="$var" '{ if (NR==6){ print field }}' foo.sh 
    5
    $
    Au cas ou...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $ bash --version
    GNU bash, version 4.0.33(2)-release (i586-mandriva-linux-gnu)
    $ awk --version
    GNU Awk 3.1.7

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 24/05/2006, 00h58
  2. [VB.net] Declaration variable dans une boucle for
    Par nico10gbb dans le forum Windows Forms
    Réponses: 4
    Dernier message: 10/05/2006, 11h45
  3. [AS2] Variable numerique bornée
    Par ooyeah dans le forum ActionScript 1 & ActionScript 2
    Réponses: 1
    Dernier message: 23/08/2005, 17h14
  4. Réponses: 6
    Dernier message: 08/06/2004, 14h22
  5. [debutant] declaration variable
    Par DaxTaz dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 01/06/2004, 16h59

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