Programmation bash

Fermé
chilby - 30 mars 2010 à 10:02
 chilby - 30 mars 2010 à 14:10
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 3288 Date d'inscription lundi 10 novembre 2008 Statut Membre Dernière intervention 2 mars 2016 311
30 mars 2010 à 10:06
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 jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 897
30 mars 2010 à 10:06
Salut,

Et si tu nous montrais d'abord ce que tu fait depuis 2 jours, non ?
0
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 jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 897
30 mars 2010 à 11:44
Il faut que tu fasses ça en bash pur ou des commandes comme "awk" sont tolérées ?
0
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 jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 897
30 mars 2010 à 12:38
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
Merci infiniment pour ton coup de main. Je vais essayer de comprendre ton script.merci beaucoup pour ta disponibilité.
0