Précédent   Forum des professionnels en informatique > Systèmes > Linux > Applications > Shell
Shell Vos questions sur l'utilisation des commandes shell
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 22/09/2011, 14h56   #1
Invité régulier
 
Inscription : mai 2011
Messages : 20
Détails du profil
Informations forums :
Inscription : mai 2011
Messages : 20
Points : 7
Points : 7
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 :
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.
Msxty est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 22/09/2011, 15h11   #2
Expert Confirmé
 
Inscription : janvier 2011
Messages : 970
Détails du profil
Informations personnelles :
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : janvier 2011
Messages : 970
Points : 2 871
Points : 2 871
Salut,

Une façon de faire parmi d'autres :
Code :
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
__________________
$ man woman
Il n'y a pas de page de manuel pour woman.
zipe31 est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/09/2011, 15h29   #3
Invité régulier
 
Inscription : mai 2011
Messages : 20
Détails du profil
Informations forums :
Inscription : mai 2011
Messages : 20
Points : 7
Points : 7
Merci pour ta réponse rapide . Par contre tu vas rire mais je vois pas pourquoi mon echo n'affiche rien

Code :
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.
Msxty est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/09/2011, 15h41   #4
Expert Confirmé
 
Inscription : janvier 2011
Messages : 970
Détails du profil
Informations personnelles :
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : janvier 2011
Messages : 970
Points : 2 871
Points : 2 871
Est-ce que echo ${END_TIME} affiche quelque chose au moins ?
__________________
$ man woman
Il n'y a pas de page de manuel pour woman.
zipe31 est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/09/2011, 15h59   #5
Invité régulier
 
Inscription : mai 2011
Messages : 20
Détails du profil
Informations forums :
Inscription : mai 2011
Messages : 20
Points : 7
Points : 7
Oui il m'affiche bien: 2011-09-22 09:21:12
Msxty est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/09/2011, 16h25   #6
Invité régulier
 
Inscription : mai 2011
Messages : 20
Détails du profil
Informations forums :
Inscription : mai 2011
Messages : 20
Points : 7
Points : 7
Si je le mets sous cet forme:

Code :
1
2
3
4
Date_Backup=$(awk -F- '{print $3}' <<<${END_TIME})
 
Il me sort:
# 22 09:21:12
Msxty est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/09/2011, 16h34   #7
Expert Confirmé
 
Inscription : janvier 2011
Messages : 970
Détails du profil
Informations personnelles :
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : janvier 2011
Messages : 970
Points : 2 871
Points : 2 871
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})
__________________
$ man woman
Il n'y a pas de page de manuel pour woman.
zipe31 est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/09/2011, 16h46   #8
Invité régulier
 
Inscription : mai 2011
Messages : 20
Détails du profil
Informations forums :
Inscription : mai 2011
Messages : 20
Points : 7
Points : 7
Citation:
Envoyé par zipe31 Voir le message
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})
Merci beaucoup pour ton aide, la valeur est bien extraite .
Msxty est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 17h45.


 
 
 
 
Partenaires

Hébergement Web