Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#26 Le 01/07/2008, à 16:02

Skippy le Grand Gourou

Re : Bashfr dans votre terminal ? [Perl inside]

redisded a écrit :

Total respect skippy le grand gourou ! wink

cool tongue lol

redisded a écrit :

p.s : serait-ce trop te demander d'expliquer un peu la partie awk parce que j'essai de commencer à m'en servir donc j'aimerais bien comprendre ce qui se passe exactement dans ta commande mais meme avec le man et google je galère pour dechiffrer wink

No problemo :

awk '$1~"#" && $0!~"RSS" { getline; while ($1!~"#") { print $0; getline;}; exit}'
awk : 				chope les lignes où…
$1~"#" :			 le premier terme ($1) contient un dièse
&& : 					ET
$0!~"RSS" : 			la ligne entière ($0) ne contient pas RSS
{ : 					fait…
getline; : 			chope la ligne suivante
while ($1!~"#") : 		tant que le premier terme ne contient pas de dièse…
{ print $0; getline;}; : 	affiche la ligne entière
exit : 					quitte (on veut une seule quote)
}

(désolé pour l'alignement approximatif, pas le temps de fignoler…)

Hors ligne

#27 Le 01/07/2008, à 16:27

redisded

Re : Bashfr dans votre terminal ? [Perl inside]

pas de pb c'est compréhensible wink merci à toi.

Hors ligne

#28 Le 29/11/2008, à 19:38

vpoulailleau

Re : Bashfr dans votre terminal ? [Perl inside]

la partie de "lynx" à "|" permet de récupérer la page http://www.bashfr.org/?sort=random2 sous forme textuelle (affichage de la page web dans une console par exemple).

ensuite la commande awk:

awk '$1~"#" && $0!~"RSS" { getline; while ($1!~"#") { print $0; getline;}; exit}'

signifie "exécute le script awk fourni entre ' ' sur le flux d'entrée, en l'occurence la page web récupérée passé au travers du pipe ( | )"

avant les accolades, on a la formule de sélection des lignes auxquelles s'applique le script et entre les accolades on a ce que doit faire le script pour les lignes sélectionnées.

$1~"#" && $0!~"RSS"

Pour toutes les lignes ne contenant pas "RSS" et dont le premier mot contient un dièse,

{ getline; while ($1!~"#") { print $0; getline;};exit}

Je passe à la ligne suivante;
Tant que le premier mot de la ligne ne contient pas de #
    J'affiche la ligne;
    Je passe à la ligne suivante;
Fin de la boucle Tant que;
Je sors du script awk.

voila voila !


Guitaristes, pianistes, batteurs, bassistes, venez chercher des partitions sur :
www.tabs.for.free.fr

Hors ligne

#29 Le 29/11/2008, à 19:39

vpoulailleau

Re : Bashfr dans votre terminal ? [Perl inside]

Oups, j'avais pas vu qu'il y avait une seconde page à ce sujet... J'arrive un peu en retard pour la réponse ;-)


Guitaristes, pianistes, batteurs, bassistes, venez chercher des partitions sur :
www.tabs.for.free.fr

Hors ligne