[shell]afficher fichier selon autre fichier

Résolu
leeloo_aya Messages postés 8 Statut Membre -  
leeloo_aya Messages postés 8 Statut Membre -
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

2 réponses

  1. zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   6 501
     
    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
    1. zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   6 501
       
      Ou en plus simple :

      grep -hsF $(awk -F':' '{print $1}' temp.txt) reservation.txt
      0
  2. leeloo_aya Messages postés 8 Statut Membre
     
    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
    1. zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   6 501
       
      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
    2. zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   6 501
       
      $ 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
    3. leeloo_aya Messages postés 8 Statut Membre
       
      merci ca marche niquel :)
      0