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

  FORUM HardWare.fr
  Programmation
  Shell/Batch

  need help bourne-again shell

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

need help bourne-again shell

n°674134
javaboy
Posté le 15-03-2004 à 15:18:19  profilanswer
 

salut!
je suis en galere.
je doit réaliser un utilitaire de gestion de données qui permet, à partir d'un fichier de données tabulées, de faire des requêtes et d'en visualiser le résultat sur la sortie standard.
 
Le script à réaliser doit être écrit en BASH (Bourne-Again SHell) en utilisant les utilitaires 'awk' et 'sed'. Chaque utilitaire UNIX doit être utilisé intelligemment, c'est à dire dans ce pour quoi il a été conçu. Pour rappel,'awk' manipule des enregistrements dans un fichier et 'sed' est un éditeur de
texte en ligne
 
Le probleme c que je debute en linux et je ne sai pa trop comment faire .
Nous aovns deja reussi a faire ceci :
 
#!/bin/sh
 
echo "bonjour"
echo "nbre d'arg" = $#
 
if [ $# -ne 3 ]
then
echo "pas bon nbre"
exit -1
fi
 
sed -e '/^#,*/d' -e 's/#.*$//' $1 | cut -f1,3
 
var = `echo $2 | sed -e 's/^SELECT//g' -e 's/WHERE.*//g'`
echo $var
 
kk un pourrai il nous aider et nous guider pour la suite?
 
merci

mood
Publicité
Posté le 15-03-2004 à 15:18:19  profilanswer
 

n°674232
aigles
Posté le 15-03-2004 à 16:29:01  profilanswer
 

Quels sont les arguments passés au scrip ?
Quel est le format des requêtes ?
Quel est le format du fichier tabulé (champs..) ?


---------------
Jean Pierre.
n°675247
javaboy
Posté le 16-03-2004 à 18:20:43  profilanswer
 

aigles a écrit :

Quels sont les arguments passés au scrip ?
Quel est le format des requêtes ?
Quel est le format du fichier tabulé (champs..) ?


 
 
le format du fichier est:
ID  Désignation Prix_unitaire   Stock
065 Savon de Marseille  2.00    30
780 Parachute   56.00   2
165 Obus de 125 1650.50 10
122 Sachet de cachuètes 1.90    40
 
Les mots-clefs sont SELECT, WHERE, AND, OR, les
parenthèses, les guillemets et les opérateurs de comparaison <, >, = et != .
Exemple de ligne de commande:
SELECT Prix_unitaire WHERE Stock > 3 AND ID != 165
 
SELECT permet de choisir les champs en sortie de la requête
WHERE sépare la commande SELECT du reste de la requête
 
 

n°675248
javaboy
Posté le 16-03-2004 à 18:23:55  profilanswer
 

aigles a écrit :

Quels sont les arguments passés au scrip ?
Quel est le format des requêtes ?
Quel est le format du fichier tabulé (champs..) ?


 
 
On a essayer ce code ensuite:
 
i=1
numerochamp=0
trouve=0
 
premiereligne=`sed -e '2,$d' $1`
for var1 in $choixselect
do
    for var in $premiereligne
    do
 echo $i
 if [ $var = $var1 ]
 then
     trouve=`expr $trouve + 1`
     numerochamp=$i
     echo "ok"
 fi
 i=`expr $i + 1`
    done
done
 
 
echo "nbre d arguments trouves=" $trouve
echo "numero de le colonne trouvee" $numerochamp
 
case $numerochamp in
    1)
 montrercolonne=`awk 'NF>1 { print $1 } ' $1`
 echo $montrercolonne
 ;;
    2)
 montrercolonne=`awk 'NF>1 { print $2 } ' $1`
 echo $montrercolonne
 ;;
    3)
 montrercolonne=`awk 'NF>1 { print $3 } ' $1`
 echo $montrercolonne
 ;;
    4)
 montrercolonne=`awk 'NF>1 { print $4 } ' $1`
 echo $montrercolonne
 ;;
esac
 

n°676035
javaboy
Posté le 17-03-2004 à 12:10:54  profilanswer
 

aigles a écrit :

Quels sont les arguments passés au scrip ?
Quel est le format des requêtes ?
Quel est le format du fichier tabulé (champs..) ?


 
l'appel du programme se fait par :
./nom_prog nom_fichier "SELECT champs WHERE a>b" -d
argument1 : nom_fichier
argument2 : SELECT...
arg3 : -d

n°676747
aigles
Posté le 18-03-2004 à 02:00:52  profilanswer
 

Voici un exemple de ce qui peut être fait ...
J'utilise AWK mais pas SED.
Je ne traite pas le troisieme argument '-d' car je ne sais pas à quoi il sert.
 
Je ne met pas le code ici (2 fichiers) car il est peut gros (environ 400 lignes avec pas mal de commentaires).  
Les deux fichiers de code sont disponibles aux adresses :
 
http://lcjp.freesurf.fr/Unix/Request.shl
http://lcjp.freesurf.fr/Unix/Request.awk
 
Le .shl fait appel au .awk
 
Le .tar contient les deux fichiers .shl et .awk
http://lcjp.freesurf.fr/Unix/Request.tar
 
On peut faire plus simple c'est sur, mais je me suis bien amusé.
 
Au fait dans quel cadre doit tu faire cet utilitaire ?
J'ai vu une message concernant le même exercice sur un autre forum (mais en anglais)
http://www.dbforums.com/t988292.html


Message édité par aigles le 18-03-2004 à 02:01:51

---------------
Jean Pierre.
n°677301
javaboy
Posté le 18-03-2004 à 16:38:46  profilanswer
 

Merci bien
c'est très complet et très interessant
A++


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

  need help bourne-again shell

 

Sujets relatifs
L'action a échoué HELP !!!!!Shell - comparaison de fichiers de deux répertoires
J'arrive pas à faire fonctionner if(empty) helpSocket prob client\serveur help !!!!
Uitlisation de Tableaux en ShellScript shell / e-mail
Recuperer applet java help[HELP] script panier e-commerce......
[Shell] Merger 2 lignes d'un fichier sur la base d'un ID communHelp!! Mayday!!! SOS, Panpan (je crois avoir tour essaye!!)
Plus de sujets relatifs à : need help bourne-again shell


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