Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
784 connectés 

  FORUM HardWare.fr
  Programmation
  Shell/Batch

  Récupérer résultat d'une réquête dans un tableau en shell (ksh)

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Récupérer résultat d'une réquête dans un tableau en shell (ksh)

n°2352971
toto777
Posté le 30-04-2020 à 16:33:08  profilanswer
 

Bonjour,
 
Je me permets de faire appel aux développeurs (je ne le fais qu'en appoint...)
 
Je fais un script shell (ksh).
 
Cela pourrait très bien être une requête sql via sqlplus, même s'il s'agit ici d'une requête Hive, ça ne change pas ma question.
 
Je veux récupérer par une requête Hive (via beeline) 2 colonnes d'une table dans un tableau.
Je fais :
 
RESULTAT_REQUETE=`beeline [...] --showHeader=false --outputformat=csv2 -e "select colonnne1,colonnne2 from ma_table;"`
 
Cela me donne les bonne données mais en 1 seule variable d'une seule ligne et colonne.
 
Or, je voudrais que ça me rende un tableau à envoyer par mail du type :
 
colonne1 colonne2
toto 5
titi 3
tata 7
 
Pourriez- vous m'indiquer comment faire, svp ?
 
Merci par avance !


Message édité par toto777 le 04-05-2020 à 14:32:19
mood
Publicité
Posté le 30-04-2020 à 16:33:08  profilanswer
 

n°2354342
toto777
Posté le 25-05-2020 à 17:49:51  profilanswer
 

Bonjour,
 
Personne ne saurait m'aider, svp ?
 
Merci.

n°2354352
rufo
Pas me confondre avec Lycos!
Posté le 26-05-2020 à 08:20:36  profilanswer
 

Si j'ai bien compris, la variable RESULTAT_REQUETE contient une chaîne du genre : valCo1Enr1;valCol2Enr1\nvalCo1Enr2;valCol2Enr2\n....
 
Le plus simple serait de post-traiter cette variable en la splittant sur le séparateur \n puis splitter chaque valeur obtenue sur ";"
Après, tu affiches le résultat du traitement. Eventuellement, tu peux remettre tout ça dans un tableau HTML.


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
n°2354568
toto777
Posté le 28-05-2020 à 09:10:40  profilanswer
 

Bonjour rufo,
 
Désolé, je n'avais pas que tu m'avais répondu.
Je te remercie de ton conseil !
 
Suite aux conseils d'une autre personne, voici ce que j'ai fait :
 
J'ai 2 scripts :
 
- le script ma_requête_BDD.ksh contenant la requête :
 
#! /bin/ksh
beeline [...] --showHeader=false --outputformat=csv2 -e "select nom,count(*) from clients where nom in ${liste_clients};
 
- le script principal script_principal.ksh qui lance le script de la requête, met le résultat dans le fichier fic_resultat et envoie le mail :
 
./ma_requête_BDD.ksh | awk -F, '{print $1, (($2>0)?"Présent":"Absent" );}' > ${fic_resultat}
 
(cat <<EOCAT
From: expediteur@serveurmail.fr
To: destinataire@serveurmail.fr
Subject: Objet du mail
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
EOCAT
cat ${fic_resultat}) | /usr/lib/sendmail "destinataire@serveurmail.fr"
 
Pour info :
Si je mets :
text/html au lieu de text/plain
Cela m'envoie un mail avec 1 seule ligne au lieu des 4 lignes de mon fichier fic_resultat (car il n'a pas les balises html de passage à la ligne).
 
J'ai donc bien ce que je souhaite, à savoir :
Toto Présent
Tata Absent
Titi Présent
Tutu Présent


Message édité par toto777 le 28-05-2020 à 09:12:31
n°2354598
rufo
Pas me confondre avec Lycos!
Posté le 28-05-2020 à 12:37:26  profilanswer
 

Si tu mets text/html , c'est normal d'avoir tout sur une même ligne puisque ce que tu mets, c'est du texte simple. Les \n (retour à la ligne) ne sont pas interprétés, en html, c'est <br />, d'où ma remarque de faire un tableau avec <table>...</table> (+ <tr>, <th> et <td> ).


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
n°2354613
toto777
Posté le 28-05-2020 à 16:21:39  profilanswer
 

En effet Rufo, je me suis peut-être mal exprimé.
J'avais écrit ça en fait au cas où quelqu'un qui a un problème de ce type, ne comprend pas pourquoi, et tombe sur ce forum, ait l'explication.
Mais merci de l'indiquer car je n'ai pas dû être clair.
 
Merci en tout cas de ton aide !


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Shell/Batch

  Récupérer résultat d'une réquête dans un tableau en shell (ksh)

 

Sujets relatifs
Récupérer la valeur texte d'un site.CSS: récupérer la position courante d'une animation pour l'inverser ?
requête SQL en phpSQL DISTINCT requete spéciale (POSTGRESQL)
[FullCalendar] - Récupérer l'attribut className d'un élément mis en bgMYSQL : update et select en une seule requête
Mapping d'un tableau en fonction de valeurs déjà filtréesExcel - intégration de données JSON via requête sur site WEB
Requête ou interface avec cumul quotidien, hebdo, etc.Interface Swing à partir d'un tableau 2D
Plus de sujets relatifs à : Récupérer résultat d'une réquête dans un tableau en shell (ksh)


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR