Script pour modifier et supprimer des valeurs d'un fichier

Fermé
ndoyestory Messages postés 52 Date d'inscription jeudi 19 janvier 2012 Statut Membre Dernière intervention 30 juin 2015 - Modifié par Guillaume5188 le 10/03/2013 à 22:26
billx09 Messages postés 23 Date d'inscription lundi 18 mars 2013 Statut Membre Dernière intervention 26 mars 2013 - 18 mars 2013 à 19:43
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 52 Date d'inscription jeudi 19 janvier 2012 Statut Membre Dernière intervention 30 juin 2015 1
13 mars 2013 à 10:29
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 33274 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 20 septembre 2024 7 782
13 mars 2013 à 10:36
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 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 415
13 mars 2013 à 10:44
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 52 Date d'inscription jeudi 19 janvier 2012 Statut Membre Dernière intervention 30 juin 2015 1
13 mars 2013 à 11:02
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 15118 Date d'inscription samedi 9 décembre 2006 Statut Contributeur Dernière intervention 6 février 2023 2 181
13 mars 2013 à 18:46
re
peut etre une petite boucle non !!! while ...
pour ajouter
modifier faut editer le fichier ...

a+
0
mamiemando Messages postés 33274 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 20 septembre 2024 7 782
11 mars 2013 à 21:18
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 23 Date d'inscription lundi 18 mars 2013 Statut Membre Dernière intervention 26 mars 2013 6
18 mars 2013 à 19:43
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