Bonjour ,
voici mon probleme.
Je dois cutter cette variable
7845124512200904091025.pdf de façon à récupérer
la chaine 20090409
Il faut que je commence impérativement par la fin car la chaine avant 2009 ..
est variable.
Pourriez vous m'aider, je galère un peu
Merci d'avance
# egrep
Posté par Alex . Évalué à 3.
egrep permet d'utiliser les expresisons rationnelles
-o ne va sortir que la partie trouvée et non toute la ligne
2009.{4} recupère la chaine à partir de 2009 et les 4 caractères qui suivent
Bien sur ça ne marchera plus en 2010
[^] # egrep
Posté par gnial29 . Évalué à 1.
Effectivement ca ne marchera pas à chaque changement d'année.
[^] # Re: egrep
Posté par guillaje (site web personnel) . Évalué à 3.
[^] # Re: egrep
Posté par sov36 . Évalué à 1.
en supposant que les fichiers soient tous des pdf
# Inverser le texte
Posté par Ellendhel (site web personnel) . Évalué à 2.
Une solution possible : utiliser un petit bout de script Sed pour inverser le texte, et lancer la commande cut par la suite.
http://sed.sourceforge.net/grabbag/scripts/revchr_1.sed
Et ré-inverser le texte après pour retomber sur tes pattes.
Tiens une nouvelle fonction sur LinuxFr ? : "1 réponse postée entre le moment où vous avez demandé le contenu et votre réponse". C'est bien ça.
[^] # Re: Inverser le texte
Posté par ✅ ffx . Évalué à 4.
[^] # Re: Inverser le texte
Posté par Ellendhel (site web personnel) . Évalué à 3.
Et du coup j'ai retrouvé l'équivalent en Sed (m'enfin bon, c'eut pu être pire et être en Perl).
# Directement en bash
Posté par dood . Évalué à 5.
echo ${st:$((${#st}-16)):8}
${#st} te donne la longueur de la chaine
$((${#st}-16)) remonte de 16 positions dans la chaine...
plus de détail là : http://tldp.org/LDP/abs/html/string-manipulation.html .
A vérifier si tu utilises un autre shell
Guilhelm
[^] # Re: Directement en bash
Posté par yolker . Évalué à 0.
STR="7845124512200904091025.pdf"
LENGTH=`echo $STR | wc -c`
echo $STR | cut -c $((-16+$LENGTH))- | cut -c 1-8
[^] # Re: Directement en bash
Posté par gnial29 . Évalué à 1.
Je te remercie , je vais m'en sortir avec ca !!!
Gracias
[^] # Re: Directement en bash
Posté par totof2000 . Évalué à 3.
[^] # Re: Directement en bash
Posté par NBaH . Évalué à 2.
st=7845124512200904091025.pdf
fonctionne aussi bien...echo ${st:${#st}-16:8}
# Ou tu peux utiliser sed
Posté par podoc . Évalué à 2.
Tu peux essayer avec sed
TAVAR=7845124512200904091025.pdf
echo $TAVAR | sed "s/^.*\(........\)....\.pdf$/\1/"
Toujours valide quelque soit l'année ...
# cut sur chaine en commencant par la fin
Posté par gnial29 . Évalué à 1.
Je vais bien avancer avec Ca !!!
# awk
Posté par jluce . Évalué à 2.
http://www.shellunix.com/awk.html
a+
je plussoie et je paie ma tournée !!!!
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.