Aide sur AWK SVP
Caro
-
tafiscobar Messages postés 1281 Statut Contributeur -
tafiscobar Messages postés 1281 Statut Contributeur -
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.
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
-
Salut,
Tu ne dois utiliser que "awk" comme filtre ? -
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