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 25/10/2014, à 14:04

tiramiseb

Re : [TUTO] Instal et MAJ de Captvty avec calc et le Terminal

le .*\ me semble étrange dans 'captvty-.*\.zip'

Pour compléter l'explication de metalux, je me permets de préciser qu'il s'agit là d'une expression rationnelle (regular expression), qui est plus compliquée que la syntaxe simple mais bien plus puissante.

À part ça, rien à ajouter sur son explication, je n'aurais pas dit mieux big_smile

Juste un truc : là sa syntaxe ".*zip", ça collerait autant à "totozip" qu'à "toto.zip", contrairement à ".*\.zip", qui doit forcément terminer par ".zip", point inclus. Mais dans ce cas précis, je suis d'accord qu'on peut être un peu "laxiste" vu que le contenu de la page est assez simple.

Autre chose, j'ai appris quelque chose grâce à metalux, je n'ai même pas pensé à regarder si grep lui-même sait limiter ses réponses smile

mais impossible de supprimer le  ".zip"

tu peux remplacer ton cut par un sed pour tout faire d'un coup :

$ echo "captvty-2.3.2.1.zip" | sed 's/captvty-\(.*\).zip/\1/'
2.3.2.1

Là on a un groupe entouré de parenthèses (on échappe les parenthèses, je ne sais plus trop pourquoi, mais il faut le faire), ce groupe étant composé de "n'importe quel nombre de n'importe quel caractère" (conformément à l'explication de metalux). Ce groupe est alors associé à la "variable" numéro 1 (car c'est le premier groupe indiqué, tout simplement), variable qui peut être réutilisée dans la seconde partie du sed : « s/<chaîne à remplacer>/<chaîne de remplacement/ ».

(j'ai peur que mon explication ne soit pas assez claire, n'hésite pas à dire s'il y a qqch que tu ne comprends pas - ou, metalux, si tu arrives à expliquer plus clairement que moi, ne te gêne pas - là je n'ai pas les idées assez claires, je suis un peu pris par autre chose)

Dernière modification par tiramiseb (Le 25/10/2014, à 14:05)

Hors ligne

#27 Le 25/10/2014, à 14:17

metalux

Re : [TUTO] Instal et MAJ de Captvty avec calc et le Terminal

fichier=$(wget -q -O- http://captvty.fr/ | grep -o -m 1 'captvty-.*.zip' | grep -o [0-9].*[0-9])

C'est ce qui me vient en 1er à l'esprit. Sinon voir également du côté de sed ou awk peut-être.
Edit: Je n'avais pas fais attention que tiramiseb avait répondu, tu as donc la version avec sed également.
Pour l'explication, j'effectue un 2ème grep en affichant seulement la chaîne commençant par un chiffre suivi d'aucun ou plusieurs caractères et finissant à nouveau par un chiffre.

Dernière modification par metalux (Le 25/10/2014, à 14:22)

Hors ligne

#28 Le 25/10/2014, à 14:24

tiramiseb

Re : [TUTO] Instal et MAJ de Captvty avec calc et le Terminal

Attention metalux, il y a une parenthèse en trop à la fin de ton grep.

Sinon, en association avec "mon" sed ça donne :

wget -q -O- http://captvty.fr/ | grep -o -m 1 'captvty-.*.zip' | sed 's/captvty-\(.*\).zip/\1/'

En gros :
- avec le grep de metalux ça veut dire « garder uniquement ce qui commence et qui termine par un chiffre et qui a n'importe quoi entre les deux »
- avec "mon" sed ça veut dire « enlever "captvy-" et ".zip", conserver n'importe quoi qui est entre les deux »

Hors ligne

#29 Le 25/10/2014, à 14:35

metalux

Re : [TUTO] Instal et MAJ de Captvty avec calc et le Terminal

tiramiseb a écrit :

Attention metalux, il y a une parenthèse en trop à la fin de ton grep.

Euh, où ça? yikes
Sinon, en te lisant je viens de voir une erreur de ma part, ça ne fonctionnera pas si la version est seulement 2 comme dans l'exemple donné par NéoUbuntonien.

Hors ligne

#30 Le 25/10/2014, à 14:41

tiramiseb

Re : [TUTO] Instal et MAJ de Captvty avec calc et le Terminal

Désolé, c'est moi qui suis con : non il n'y a pas de problème de parenthèse dans ta commande smile

Dernière modification par tiramiseb (Le 25/10/2014, à 14:41)

Hors ligne

#31 Le 25/10/2014, à 14:58

melixgaro

Re : [TUTO] Instal et MAJ de Captvty avec calc et le Terminal

salut
a propos de l'échappement des parenthèses dans sed, c'est parce que soit elles sont comprises comme des vraies parenthèses, soit comme les symboles définissant un groupe (le cas de ton exemple). non ?


Linux depuis ~2007. Xubuntu seulement.

Hors ligne

#32 Le 25/10/2014, à 15:54

tiramiseb

Re : [TUTO] Instal et MAJ de Captvty avec calc et le Terminal

Ouais ça doit être ça, mais j'ai toujours trouvé ça bizarre : avec le point par exemple, par défaut on a la  signification spéciale, l'échappement servant à retrouver le caractère simple...

Dernière modification par tiramiseb (Le 25/10/2014, à 15:55)

Hors ligne

#33 Le 25/10/2014, à 16:02

melixgaro

Re : [TUTO] Instal et MAJ de Captvty avec calc et le Terminal

à tiramiseb
c'est vrai, c'est asymétrique


Linux depuis ~2007. Xubuntu seulement.

Hors ligne