j’ai une chaine, par exemple fichier_blabla_020.jpg
et je ne veut reccuperer que le nombre 020, l’estensions, et les supprimés.
Vous pouvez me donner une piste please ?
j’ai chercher avec cut, mais je ne voit pas comme selectionner les caracteres depuis le fin de la ligne.
awk et sed sont pour moi de grands mysteres…
sed traite ligne à ligne un fichier ou des entrées sur stdin .
On peut donc le “piper” et récupérer le résultat sur stdout.
Une des façons de lui balancer une chaine a traiter est donc le echo la_chaine | sed …
l’option -n indique de ne pas afficher la chaine à traiter mais seulement le résultat.
La commande appliquée est la subsitution : s
qui marche selon le modèle : s/ce_qu’on_cherche/ce_qu’on_met_à_la_place/
On fait suivre de g ( traiter toutes les occurences traitées ) et p ( print )
donc s/…/…/gp
Pour ce qu’on cherche, il s’agit d’écrire une expression rationnelle qui décrit le truc:
On écrit donc:
un caractère quelconque : .
répété de 0 à n fois : *
soit .*
suivi d’underscore : _
le nom du fichier est donc .*_
On veut ensuite isoler ce motif pour pouvoir le réutiliser, il faut donc le placer entre parenthèses
(.*_)
il peut être rappelé ensuite par son numéro d’ordre. Si c’est le premier regroupement entre (), c’est donc \1
NB: pour empecher le shell d’interpréter les ( ) , il faut les protéger, donc les faire précéder d’un \
Au finale : (.*_)
De la même façon, trois chiffres s’écrivent:
un caractère compris entre 0 et 9 : [0-9]
répété 3 fois {3}
en protégeant les accolades, et en faisant un regroupement:
([0-9]{3})
ensuite l’extension:
idem sauf qu’il s’agit de lettres donc de caractères compris entre a et z ou A et Z, ce qui s’écrit : [a-zA-Z]
soit:
([a-zA-Z]{3})
excuse moi myocastor malgrés tes explications, j’ai passer 3/4 d’heures a me casser les dents pour tenter de reccuperer dans une url separement le nom du fichier, la version et l’extension.
-> lithium
t’as installé nasgaia ?
a un moment pendant l’install, il a planté en boucle sur les at qu’il arrivait pas a lire (j’ai verifié les md5 pourtant)
j’ai ressayé et ca a replanté au meme endroit.