Aller au contenu

demande d'aide en bash


APZO

Messages recommandés

Membre, Posté(e)
APZO Membre 208 messages
Baby Forumeur‚
Posté(e)

Bonjour,

j'aimerais réaliser un script en bash pour faire la chose suivante : j'ai un fichier dans lequel il y a une liste d'auteurs et pour chaque auteur il y a une liste de ses livres et j'aimerais afficher la liste de livres correspondant à un certain auteur. Cela se présente de cette façon :

http://hpics.li/7b182e6

je me doute qu'il faut utiliser la commande grep mais je ne vois pas trop comment m'y prendre. La commande affiche les lignes contenant une certaine chaîne de caractères mais là c'est pas vraiment ce que je veux faire.

Lien à poster
Partager sur d’autres sites

Annonces
Maintenant
Membre, 39ans Posté(e)
Donny Membre 621 messages
Baby Forumeur‚ 39ans‚
Posté(e)

C'est le format originel de ton fichier ? nom_auteur prenom_auteur\tLivre 1\n\tLivre 2\n\tLivre 3 ("\n" saut de ligne et "\t" tabulation) ?

Lien à poster
Partager sur d’autres sites

Membre, Posté(e)
APZO Membre 208 messages
Baby Forumeur‚
Posté(e)

Oui c'est ça, c'est le format originel du fichier.

Lien à poster
Partager sur d’autres sites

Membre, 39ans Posté(e)
Donny Membre 621 messages
Baby Forumeur‚ 39ans‚
Posté(e)

Tu peux utiliser grep en complément de cut. Tu connais les expressions régulières ? Je m'y connais pas beaucoup, mais ça doit être un truc comme ça :

grep "nom_auteur prenom_auteur+(\t+(.)?(\n))" nom_fichier > cut -d "\t" -f 2- > fichier_avec_tes_livres

Lien à poster
Partager sur d’autres sites

Membre, Posté(e)
APZO Membre 208 messages
Baby Forumeur‚
Posté(e)

D'accord merci, je vais essayer avec ça.

Lien à poster
Partager sur d’autres sites

Membre, 39ans Posté(e)
Donny Membre 621 messages
Baby Forumeur‚ 39ans‚
Posté(e)

Tfaçon, ça marchera pas, faut forcer grep à analyser en muli-ligne. Le format de ton fichier il est pourri. Essaye plutôt ça, même si ça donne pas un super truc :

grep -Pzo "nom_auteur prenom_auteur(\s+.+\n*)+" nom_fichier | cut -d " " -f 3- > fichier_avec_tes_livres 

Lien à poster
Partager sur d’autres sites

Membre, Posté(e)
APZO Membre 208 messages
Baby Forumeur‚
Posté(e)

Merci de m'avoir aidé, après quelques modifications le script a fonctionné ^^

Lien à poster
Partager sur d’autres sites

Annonces
Maintenant

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×