Script pour modifier et supprimer des valeurs d'un fichier

ndoyestory Messages postés 93 Statut Membre -  
billx09 Messages postés 24 Statut Membre -
Bonjour,

J'aimerais créer un script en Shell me permettant de modifier et de supprimer des valeurs d'un fichier.
Fichier :

Nom=DUPOND
Prenom=Jacques
AGE=176
VILLE=NANTES

je suis débutant en linux et je sais pas comment y procéder.
Merci.
A voir également:

4 réponses

ndoyestory Messages postés 93 Statut Membre 1
 
c'est ça l'énoncé :
Je veux créer un fichier Etudiant.dat
avec les colonnes matriculr nom personne adresse age
créer l'etudiant
modifier les info sur l'etudiant en connaissant son matricule
de supprimer les etudiants par rapport a son matricule
de lister l'ensemble des etudiants
(le:matricule de l'etudiant dans le fichier est unique)
1
mamiemando Messages postés 34184 Statut Modérateur 7 888
 
Attends rassure-moi, le but ce n'est pas que je fasse ton exercice à ta place ? Là ce que tu t'apprêtes à me dire, c'est (je suppose) : voici ce que j'ai commencé à faire, il y a ceci qui me bloque ou qui ne marche pas comme je veux, qu'est ce que je peux faire ?

Ensuite tu parles de colonnes alors que si on regarde ton premier message on a l'impression que les attributs d'un étudiants sont écrits en ligne. Du coup sous quel format tu veux stocker les informations dans ton fichier ?

Bonne chance
1
zipe31 Messages postés 38797 Statut Contributeur 6 433
 
Salut mamie,

Attends rassure-moi, le but ce n'est pas que je fasse ton exercice à ta place ?
Perso, je mettrai bien une petite pièce sur cette éventualité ;-))
0
ndoyestory Messages postés 93 Statut Membre 1
 
c'est là où j'en suis et je peux pas recuperer les entrés ni les modifier, ni les supprimer:

#!/bin/bash
echo "Veuillez saisir votre matricule"
read matricule
echo "Entrer Prenom"
read prenom
echo "Entrer nom"
read nom
echo "Entrer Adresse"
read adresse
echo "Entrer Age"
read age
echo "Etudiant1:"
echo Matricule: $matricule
echo Prenom: $prenom
echo Nom: $nom
echo Adresse: $adresse
echo Age: $age
0
jeanbi Messages postés 15397 Statut Contributeur 2 184
 
re
peut etre une petite boucle non !!! while ...
pour ajouter
modifier faut editer le fichier ...

a+
0
mamiemando Messages postés 34184 Statut Modérateur 7 888
 
Je n'ai pas compris la question, comment doit se comporter le script ? Il doit demander à l'utilisateur quel champ modifier et quelle valeur lui affecter ? Peut-il y avoir plusieurs occurrences dans le fichier d'une "clé" (par exemple plusieurs lignes Noms, plusieurs lignes Prénoms etc...).

Tu peux d'ores et déjà regarder comment marche la commande sed, car c'est ce qui me paraît le plus approprié dans ton cas.
https://fr.wikipedia.org/wiki/Stream_Editor

Bonne chance
0
billx09 Messages postés 24 Statut Membre 6
 
Pour un travail du genre, j'opterais plus pour le format csv, et la librairie csv de python :

https://docs.python.org/2/library/csv.html

Si tu préfères rester en bash, tu apprécieras certainement les commandes :
- cut : pour découper une ligne en fonction d'un délimiteur
- grep : pour rechercher une ligne (à partir d'un matricule par exemple)

Par exemple, ceci te donnera le premier champ de la ligne ayant le matricule $matricule, en assumant que tu utilises ":" pour séparer tes colonnes.
grep $matricule etudiant.dat | cut -d ":" -f 1
0