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 😃
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 🙂
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)