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.

4 réponses

  1. 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
  2. mamiemando Messages postés 33228 Date d'inscription   Statut Modérateur Dernière intervention   7 944
     
    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
    1. zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   6 501
       
      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
    2. 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
    3. jeanbi Messages postés 15399 Date d'inscription   Statut Contributeur Dernière intervention   2 383
       
      re
      peut etre une petite boucle non !!! while ...
      pour ajouter
      modifier faut editer le fichier ...

      a+
      0
  3. mamiemando Messages postés 33228 Date d'inscription   Statut Modérateur Dernière intervention   7 944
     
    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
  4. 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