[shell]afficher fichier selon autre fichier

Résolu/Fermé
leeloo_aya Messages postés 6 Date d'inscription lundi 7 mars 2011 Statut Membre Dernière intervention 21 mars 2011 - 20 mars 2011 à 18:27
leeloo_aya Messages postés 6 Date d'inscription lundi 7 mars 2011 Statut Membre Dernière intervention 21 mars 2011 - 20 mars 2011 à 23:26
Bonjour,

je travaille actuellement sur un programme en Shell de Bourne permetttant la reservation de salles :
j'ai un fichier temp.sh qui contient une liste de salles
salle1:nbPoste:outils
salle2:nbPoste:outils
salle3:nbPoste:outils
..
et un fichier reservations.sh qui contient la liste des salles dejà reservées sous forme id;salle;date;heure :

1;salle1;09/08/2010;8
2;salle1;10/08/2010;10
3;salle7;08/09/2010;9
4;salle6;08/09/2010;11

j aimerai afficher les reservations des salles presentes seulement dans le fichier temp.sh
(a une date) .
je pense qu il faut que pour chaque ligne de temp , recuperer la salle et rechercher dans les reservations s'il y en a une (et sinon mettre un message comme quoi il n y a pas de reservation a cette date de cette salle) et je bloque totalement.

Merci d avance de votre aide




A voir également:

2 réponses

zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 418
20 mars 2011 à 19:13
Salut,

$ cat temp.txt  
salle1:nbPoste:outils 
salle2:nbPoste:outils
salle3:nbPoste:outils

$ cat reservation.txt
1;salle1;09/08/2010;8
2;salle1;10/08/2010;10
3;salle7;08/09/2010;9
4;salle6;08/09/2010;11

$ A=$(awk -F':' '{print $1}' temp.txt)

$ echo $A
salle1 salle2 salle3

$ fgrep -hs $A reservation.txt
1;salle1;09/08/2010;8
2;salle1;10/08/2010;10

$

;-))
1
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 418
20 mars 2011 à 19:28
Ou en plus simple :

grep -hsF $(awk -F':' '{print $1}' temp.txt) reservation.txt
0
leeloo_aya Messages postés 6 Date d'inscription lundi 7 mars 2011 Statut Membre Dernière intervention 21 mars 2011
Modifié par leeloo_aya le 20/03/2011 à 21:06
merci de m avoir vite repondu

a quoi sert -hsF ?
grep et fgrep cest pareil ?

ca a l air de marcher (avec ta premiere solution jte remercie)
est ce qu on peut ecrit le resultat du grep en phrase ? (du genre la salle $2 est reservé le $3 a $4) ?
0
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 418
20 mars 2011 à 23:07
a quoi sert -hsF ?
man grep, tout y est expliqué.


grep et fgrep cest pareil ?
En fait fgrep est l'équivalent de "grep -F"


est ce qu on peut ecrit le resultat du grep en phrase ? (du genre la salle $2 est reservé le $3 a $4) ?
Pour ça il faudra passer par de la mise en forme, avec "awk" ou "sed"...
0
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 418
20 mars 2011 à 23:17
$ grep -hsF $(awk -F':' '{print $1}' temp.txt) reservation.txt | awk -F';' '{ print "La "$2" est réservée le "$3" à "$4" heures" }'
La salle1 est réservée le 09/08/2010 à 8 heures
La salle1 est réservée le 10/08/2010 à 10 heures

$
0
leeloo_aya Messages postés 6 Date d'inscription lundi 7 mars 2011 Statut Membre Dernière intervention 21 mars 2011
20 mars 2011 à 23:26
merci ca marche niquel :)
0