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 :

Commande awk sur une requête SQL


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
    Mai 2011
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Mai 2011
    Messages : 20
    Par défaut Commande awk sur une requête SQL
    Bonjour,

    Je suis sur un script shell et je voudrais extraire une valeur à partir d'une requête sql. J'avais déjà utilisé la commande awk sur un fichier mais sur une requête sql je ne sais pas si elle travaille de la même façon.

    Ce que j'obtiens actuellement:

    Date_Backup = 2011-09-22 09:21:12
    Date_Today = 22

    Ce que je voudrais, c'est sélectionner seulement le jour de la date "Date_Backup" afin que je puisse comparer avec la date d'aujourd'hui.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    #Ma requête
     
    SQL_REQUESTENDTIME="select EndTime from Job where Name=\"$HOSTNAME-job\" AND JobId=(select MAX(JobId) FROM Job WHERE Name=\"$HOSTNAME-job\");"
     
    #Ma variable Date_Backup
    END_TIME=$( echo $SQL_REQUESTENDTIME | mysql -u bacula303 -p  | tail -1 >>  fichier )
     
    Data_Backup=$(awk '{print $3}' fichier)
    echo "$Data_Backup";
    echo "Date_Today = $(date +%d)";
    EDIT: En fait c'est bon, je stocke bien mes valeurs dans un fichier par contre sur mon "echo "Data_Backup"", je n'ai aucun retour et je n'ai pas d'erreur retournée

    Est-ce quelqu'un peut me donner une piste ?

    Merci d'avance.

  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,

    Une façon de faire parmi d'autres :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $ echo ${END_TIME}
    Date_Backup = 2011-09-22 09:21:12
     
    $ awk '{ split($3,tab,"-"); print tab[3] }' <<<${END_TIME}
    22

  3. #3
    Membre averti
    Inscrit en
    Mai 2011
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Mai 2011
    Messages : 20
    Par défaut
    Merci pour ta réponse rapide . Par contre tu vas rire mais je vois pas pourquoi mon echo n'affiche rien

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    echo ${END_TIME}
    Date_Backup=$(awk '{ split($3,tab,"-"); print tab[3] }' <<<${END_TIME})
     
    echo "$Date_Backup";
    echo "Date_Today = $(date +%d)";
    Je ne vois pas où est le hic.

  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
    Est-ce que echo ${END_TIME} affiche quelque chose au moins ?

  5. #5
    Membre averti
    Inscrit en
    Mai 2011
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Mai 2011
    Messages : 20
    Par défaut
    Oui il m'affiche bien: 2011-09-22 09:21:12

  6. #6
    Membre averti
    Inscrit en
    Mai 2011
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Mai 2011
    Messages : 20
    Par défaut
    Si je le mets sous cet forme:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Date_Backup=$(awk -F- '{print $3}' <<<${END_TIME})
     
    Il me sort:
    # 22 09:21:12

  7. #7
    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 Msxty Voir le message
    Oui il m'affiche bien: 2011-09-22 09:21:12
    Ben forcément par rapport à ma variable il manque le $1et $2 (Date_Backup = 2011-09-22 09:21:12)

    Essaye avec Date_Backup=$(awk '{ split($1,tab,"-"); print tab[3] }' <<<${END_TIME})

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

Discussions similaires

  1. aide sur une requête sql
    Par sanach dans le forum MS SQL Server
    Réponses: 10
    Dernier message: 27/02/2008, 16h43
  2. aide sur une requête sql
    Par sanach dans le forum Développement
    Réponses: 9
    Dernier message: 17/10/2007, 20h42
  3. Problème de SUM sur une requête SQL
    Par Lapicure dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 12/06/2007, 11h51
  4. Barre de progression sur une requète SQL
    Par Wilco dans le forum Bases de données
    Réponses: 4
    Dernier message: 28/04/2005, 14h20
  5. Pb sur une requête SQL (de champ vide)
    Par Marion dans le forum Langage SQL
    Réponses: 3
    Dernier message: 01/07/2004, 11h12

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