Programmation bash

Bonjour à tous! je suis debutant en programmation bash. J'ai un programme qui me fais tourner depuis 2 jours. Je voudrai que quelqu'un m'aide si possible. Merci voici l'enoncé:
On dispose d'un fichier personnes dont chaque ligne est constituée du prénom et du genre (m pour masculin, f pour feminin) d'un individu.
exemple: $ cat personnes
arthur m
pierre m
dominique f
paule f
sylvie f
jean m
$
Ecrire un programme qui crée à partir de ce fichier, un fichier garcons contenant uniquement les prénoms des garcons et un fichier filles contenant uniquement les prénoms des filles.
Exemple: $ tripersonnes.

Je vous serai reconnaissant de bien vouloir m'aider.

6 réponses

  1. Merci infiniment pour ton coup de main. Je vais essayer de comprendre ton script.merci beaucoup pour ta disponibilité.
    0
    1. Modérateur
      Pour reprendre ton script. il faut que tu comprennes bien à quoi sert chaque commande et quelles sont leurs fonctions respectives.

      cat sert à afficher un fichier et éventuellement à en créer un interactivement comme tu l'as fait pour le fichier "personnes", mais ça ne marche pas depuis un script, ou du moins pas comme tu t'y es pris ;-(

      cp sert à copier/dupliquer un fichier , mais pas à écrire dans un fichier. Pour ça on utilise "echo blabla > fichier" ou "echo blabla >> fichier" pour ajouter à la suite des données déjà existantes.

      Voilà un exemple pour ton sujet :

      jp@MDK:~/tmpfs ssh$ cat personnes
      arthur m
      pierre m
      dominique f
      paule f
      sylvie f
      jean m
      jp@MDK:~/tmpfs ssh$ cat foo.sh
      #! /bin/sh
      
      #set -xv
      
      while read NOM SEX
      do
      if [ "$SEX" == "m" ]
      then
      echo "$NOM" >> garçons.txt
      else
      echo "$NOM" >> filles.txt
      fi
      done < personnes
      
      jp@MDK:~/tmpfs ssh$ ./foo.sh
      
      jp@MDK:~/tmpfs ssh$ cat garçons.txt
      arthur
      pierre
      jean
      
      jp@MDK:~/tmpfs ssh$ cat filles.txt
      dominique
      paule
      sylvie
      
      jp@MDK:~/tmpfs ssh$


      ;-))
      0
      1. Il faut que je le fasse en bash.Merci
        0
        1. voici ce que j'ai fais
          J'ai creé d'abord le fichier personnes avec les prénoms comme indiqué en faisant

          cat personnes>
          arthur m
          dominique f
          etc..
          ensuite j'ai fais
          while read personnes
          if[[$2=m]]
          then cat> garcons
          cp $1 garcons
          then cat> filles
          cp $1 filles
          fi
          echo"garcons:" cat garcons
          echo"filles:" cat filles

          merci
          0
          1. Modérateur
            Il faut que tu fasses ça en bash pur ou des commandes comme "awk" sont tolérées ?
            0
        2. Modérateur
          Salut,

          Et si tu nous montrais d'abord ce que tu fait depuis 2 jours, non ?
          0
          1. Tu peux faire voir ce que tu as déjà fais?
            Car sinon, je vais te donner un truc qui n'as rien à voir avec ton début ^^
            Alors ca marchera certes, mais tu n'auras rien appris :P
            0