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 :

Questions sur la commande awk


Sujet :

Shell et commandes GNU

  1. #1
    Membre �clair� Avatar de vbcasimir
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    455
    D�tails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2003
    Messages : 455
    Par d�faut Questions sur la commande awk
    Bonjour,

    voici mon code

    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
     
     
    su - ora${user} -c "sqlplus -s system/manager <<!
     
    set head off
    set pages 100
    set lines 200
    set feedback off
    SELECT rpad(Total.tablespace_name,15,' ') \"Tablespace Name\",
           lpad((Free_space),15,' ') \"Espace Space\",
           round(((Free_space/total_space)*100),0) \"Free Space Percentage\"
    FROM
      (select tablespace_name, sum(bytes) Free_Space
         from sys.dba_free_space
        group by tablespace_name
      ) Free,
      (select tablespace_name,  sum(bytes) TOTAL_SPACE
         from sys.dba_data_files
        group by tablespace_name
      ) Total
    WHERE Free.tablespace_name = Total.tablespace_name;
     
    !" | awk -f - -v <<-EOF
    NR > 1 {
    if ($3 >= 5)
    print "ALERTE : Pour la base le tablespace ",$1,"ne lui reste plus que ",$3,"% de libre"
     
    }
    EOF
    je voudrais passer en param�tre une variable mais je ne sais pas comment �crire la synthaxe pour cela

    Merci

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    43
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 43
    Par d�faut
    Peux tu �tre plus explicite?

  3. #3
    Membre �clair� Avatar de vbcasimir
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    455
    D�tails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2003
    Messages : 455
    Par d�faut
    bien je voudrais pouvoir envoyer une variable en m�me temps que le flux que je recup�re dans awk

    par exemple :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
     
     
    ma commande | awk  -f - -v var=ma_variable_externe '{print ma_variable_externe}'
    voil� ce que je voudrais faire ...

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    43
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 43
    Par d�faut
    Je n'ai pas le niveau pour bien te r�pondre mais je peux te donner une piste

    je sais pas si c'est une faute de frappe mais il te faudra mettre des "" et non des '' pour que la varaible soit reconnue

  5. #5
    Membre chevronn�
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    376
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 376
    Par d�faut
    Les arguments de ton shell sont accessible avec les variables : $1 $2 etc. selon le nombre d'arguments. Tu as aussi $# pour le nombre d'arguments et $@ ... mais la je ne sais plus trop � quoi ca sert.

    Regarde ici : http://www.freeos.com/guides/lsst/ch02sec14.html

  6. #6
    Membre �clair� Avatar de vbcasimir
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    455
    D�tails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2003
    Messages : 455
    Par d�faut
    ce que je veux savoir c'est comment passer un param�tre en plus du flux pip� dans la commande awk ... � moins d'avoir mal compris ta r�ponse .. dans ce cas j'aurais besoin d'un exemple ..

    revoici mon exemple

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
     
     
     
    ma_commande | awk -f- var=une_autre_valeur <<EOF
     
    print $0 , une_autre_valeur
     
    EOF

  7. #7
    Membre chevronn�
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    376
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 376
    Par d�faut
    Citation Envoy� par vbcasimir
    ce que je veux savoir c'est comment passer un param�tre en plus du flux pip� dans la commande awk ... � moins d'avoir mal compris ta r�ponse .. dans ce cas j'aurais besoin d'un exemple ..
    Mouarf ! Non c"est moi qui ai mal compris ta question .... dsl !
    Heu la comme �a ... aucune id�e !

  8. #8
    Mod�rateur
    Avatar de al1_24
    Homme Profil pro
    Retrait�
    Inscrit en
    Mai 2002
    Messages
    9 137
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 64
    Localisation : France, Val de Marne (�le de France)

    Informations professionnelles :
    Activit� : Retrait�
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 137
    Par d�faut
    Je pense que c'est cela que tu cherches :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    ma_variable_externe="la valeur à imprimer"
    ma commande | awk  -f - -v myvar=$ma_variable_externe '{print myvar}'
    ou
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
     
    ma commande | awk  -f - -v myvar="la valeur à imprimer" '{print myvar}'
    [/code]
    Mod�rateur Langage SQL
    R�gles du forum Langage SQL � lire par tous, N'h�sitez pas � consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une r�ponse vous a aid� � r�soudre votre probl�me, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un probl�me expos� sans mentionner les tentatives de r�solution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail � sa place... et ne donne pas envie d'y r�pondre.

  9. #9
    Membre �clair� Avatar de vbcasimir
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    455
    D�tails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2003
    Messages : 455
    Par d�faut
    apparemment lorsqu'on saisit la commande ainsi

    ma_variable_externe="la valeur � imprimer"
    ma_commande | awk -f - -v myvar=${user} '{print myvar}'
    j'ai l'erreur suivante


    awk: -:24: fatal: cannot open file `{print myvar}' for reading (No such file or directory)
    snif ...

  10. #10
    Mod�rateur
    Avatar de al1_24
    Homme Profil pro
    Retrait�
    Inscrit en
    Mai 2002
    Messages
    9 137
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 64
    Localisation : France, Val de Marne (�le de France)

    Informations professionnelles :
    Activit� : Retrait�
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 137
    Par d�faut
    Et comme �a ?
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    ma_variable_externe="la valeur à imprimer"
    ma_commande |  awk -v myvar=${ma_variable_externe} '{print myvar}'
    Mod�rateur Langage SQL
    R�gles du forum Langage SQL � lire par tous, N'h�sitez pas � consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une r�ponse vous a aid� � r�soudre votre probl�me, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un probl�me expos� sans mentionner les tentatives de r�solution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail � sa place... et ne donne pas envie d'y r�pondre.

  11. #11
    Membre �clair� Avatar de vbcasimir
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    455
    D�tails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2003
    Messages : 455
    Par d�faut
    bien lorsque j'execute ma commande donc comme ceci

    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
     
     
     
    user=hexa
    su - ora${user} -c "sqlplus -s system/manager <<!
    set head off
    set pages 100
    set lines 200
    set feedback off
    SELECT rpad(Total.tablespace_name,15,' ') \"Tablespace Name\",
           lpad((Free_space),15,' ') \"Espace Space\",
           round(((Free_space/total_space)*100),0) \"Free Space Percentage\"
    FROM
      (select tablespace_name, sum(bytes) Free_Space
         from sys.dba_free_space
        group by tablespace_name
      ) Free,
      (select tablespace_name,  sum(bytes) TOTAL_SPACE
         from sys.dba_data_files
        group by tablespace_name
      ) Total
    WHERE Free.tablespace_name = Total.tablespace_name;
     
    !" | awk -f - -v myvar=${user} '{print myvar}'
    bien j'ai le retour d'erreur que j'ai cit� dans la r�ponse pr�cedente ..

  12. #12
    Mod�rateur
    Avatar de al1_24
    Homme Profil pro
    Retrait�
    Inscrit en
    Mai 2002
    Messages
    9 137
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 64
    Localisation : France, Val de Marne (�le de France)

    Informations professionnelles :
    Activit� : Retrait�
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 137
    Par d�faut
    Le probl�me ici c'est le -f -
    Mod�rateur Langage SQL
    R�gles du forum Langage SQL � lire par tous, N'h�sitez pas � consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une r�ponse vous a aid� � r�soudre votre probl�me, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un probl�me expos� sans mentionner les tentatives de r�solution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail � sa place... et ne donne pas envie d'y r�pondre.

  13. #13
    Membre �clair� Avatar de vbcasimir
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    455
    D�tails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2003
    Messages : 455
    Par d�faut
    donc il n' y a pas de solution ou faut-il enlever l'option " -f - "

  14. #14
    Mod�rateur
    Avatar de al1_24
    Homme Profil pro
    Retrait�
    Inscrit en
    Mai 2002
    Messages
    9 137
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 64
    Localisation : France, Val de Marne (�le de France)

    Informations professionnelles :
    Activit� : Retrait�
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 137
    Par d�faut
    L'option -f - signifie : lire les commandes awk dans l'entr�e standard.
    Mais ici l'entr�e standard est aussi utilis�e comme source des lignes � traiter.

    Tu as donc deux solutions :
    • soit tu enregistres tes commandes awk dans un fichier toto et tu utilises l'option -f toto
      soit tu n'utilises pas l'option -f et tu places tes commandes awk apr�s les d�clarations de variables
    Mod�rateur Langage SQL
    R�gles du forum Langage SQL � lire par tous, N'h�sitez pas � consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une r�ponse vous a aid� � r�soudre votre probl�me, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un probl�me expos� sans mentionner les tentatives de r�solution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail � sa place... et ne donne pas envie d'y r�pondre.

  15. #15
    Membre �clair� Avatar de vbcasimir
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    455
    D�tails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2003
    Messages : 455
    Par d�faut
    je ne vois pas comment me faut-il placer les commandes apr�s awk ?

  16. #16
    Mod�rateur
    Avatar de al1_24
    Homme Profil pro
    Retrait�
    Inscrit en
    Mai 2002
    Messages
    9 137
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 64
    Localisation : France, Val de Marne (�le de France)

    Informations professionnelles :
    Activit� : Retrait�
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 137
    Par d�faut
    Citation Envoy� par vbcasimir
    je ne vois pas comment me faut-il placer les commandes apr�s awk ?
    Dans ta ligne de commande
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    "sqlplus...!" | awk -f - -v myvar=${user} '{print myvar}'
    -v myvar=${user} est la partie d�claration de variables et '{print myvar}' est la partie commandes awk.
    La commande
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    "sqlplus...!" | awk -v myvar=${user} '{print myvar}'
    a quelques chances de fonctionner correctement...
    Mod�rateur Langage SQL
    R�gles du forum Langage SQL � lire par tous, N'h�sitez pas � consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une r�ponse vous a aid� � r�soudre votre probl�me, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un probl�me expos� sans mentionner les tentatives de r�solution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail � sa place... et ne donne pas envie d'y r�pondre.

Discussions similaires

  1. Questions sur la commande nohup
    Par cquilgars dans le forum Shell et commandes GNU
    R�ponses: 2
    Dernier message: 31/07/2013, 15h36
  2. question sur la commande test
    Par juin29 dans le forum Shell et commandes GNU
    R�ponses: 11
    Dernier message: 17/02/2011, 15h44
  3. Les questions sur les commandes Linux
    Par codon21 dans le forum Linux
    R�ponses: 6
    Dernier message: 26/03/2009, 23h18
  4. Petite question sur la commande system()
    Par johnnydepp dans le forum C
    R�ponses: 19
    Dernier message: 06/05/2007, 18h00
  5. question sur la commande df
    Par Melvine dans le forum Linux
    R�ponses: 5
    Dernier message: 27/12/2006, 19h06

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