Programmation bash

chilby -  
 chilby -
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.

A voir également:

6 réponses

xav3601 Messages postés 3289 Date d'inscription   Statut Membre Dernière intervention   311
 
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
jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 896
 
Salut,

Et si tu nous montrais d'abord ce que tu fait depuis 2 jours, non ?
0
chilby
 
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
jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 896
 
Il faut que tu fasses ça en bash pur ou des commandes comme "awk" sont tolérées ?
0
chilby
 
Il faut que je le fasse en bash.Merci
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 896
 
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
chilby
 
Merci infiniment pour ton coup de main. Je vais essayer de comprendre ton script.merci beaucoup pour ta disponibilité.
0