Aide sur AWK SVP

Bonjour à tous,
Voila j'ai un petit logiciel a faire avec awk et j'avoue je suis assez perdue a cause de mes lacunes...
Voici ce que je doit faire:

Créer un logiciel avec awk qui va interrogé une base de donnée (basé sur un fichier texte contenant les champs: NOM PRENOM ADRESSE CODE POSTE VILLE) et qui utilise les fonctions suivante:
bdrm : pour supprimer une entrée
bdfind: pour recherche une entrée
bdadd: pour ajouter une entrée

Ces fonctions sont bien sûr a créer et c'est la que j'ai un peu de mal.
Si quelqu'un peu me donner un tuyau, cela me serai d'une grande aide.

Merci.

2 réponses

  1. Modérateur
    Salut,

    Tu ne dois utiliser que "awk" comme filtre ?
    1. Oui je dois seulement utiliser awk comme filtre.
      Je pense que les fonctions que je dois créer doivent utiliser des commandes unix: pour le dbadd il faudrai la commande qui ajoute une ligne dans notre fichier de base de donnée..
  2. Contributeur
    salut, pour ecrire dans un fichier en awk, il te suffit juste de faire un "print motaecrire >> fichier". Voici un exemple, ce n'est pas optimisé, mais ça te donnera une idée: Je considére qe le séparateur des champs c'est ";" et le séparateur des enregistrements c'est "\n".
    #!/usr/bin/awk -f
    #fichier dbadd
    usage () {
      print ("dbadd: dbadd <prenom> <adrese> <codepo> <vile>\n");
    }
     
    if (ARGC != 5)
       usage ();
    else # arguments = 5
       print ARGV[1] ";" ARGV[2] ";" ARGV[3] ";" ARGV[4] ";" ARGV[5] "\n" >> "db";
       close ("db");
    
    ## fichier dbrm
    #!/usr/bin/awk -f
    
    BEGIN {  if ARGC != 2 print "dbrm : dbrm <prenom_a_supprimer>";  else {FS =";" ;  RS="\n"; prenom = ARGV[1]}}
    {
       if ($1 == prenom)  
           next;
       print $0 >> "tmp";  
    }
    
    END { close ("db"); close ("tmp"); "cat tmp > db";}
    
    ## pour dbfind, c'est pareil, il suffit juste de l'adapter