OVH Cloud OVH Cloud

traitement de chaine

6 réponses
Avatar
thierry escola
bonsoir,

dans la chaine "fichier65553.txt"
sous bash je cherche à séparer la partie alpha de la partie numérique et
uniquement récupérer "fichier"
je compte traiter ainsi tout un lot de noms de fichier suivis de chiffres
pourriez-vous m'aider svp

Thierry
--
http://members.fortunecity.fr/tagada/

6 réponses

Avatar
Pascal Bourguignon
thierry escola writes:

bonsoir,

dans la chaine "fichier65553.txt"
sous bash je cherche à séparer la partie alpha de la partie numérique
et uniquement récupérer "fichier"
je compte traiter ainsi tout un lot de noms de fichier suivis de chiffres
pourriez-vous m'aider svp


Oui: RTFM. C'est à dire: man bash

Bon, je suis généreux ce soir, un coup de pouce: voir la section
"Parameter Expansion".

--
__Pascal_Bourguignon__ http://www.informatimago.com/
----------------------------------------------------------------------
Do not adjust your mind, there is a fault in reality.

Avatar
Jean-Yves LENHOF
On Sat, 30 Aug 2003 23:12:31 +0200, thierry escola wrote:

bonsoir,

dans la chaine "fichier65553.txt"
sous bash je cherche à séparer la partie alpha de la partie numérique
et uniquement récupérer "fichier"
je compte traiter ainsi tout un lot de noms de fichier suivis de chiffres
pourriez-vous m'aider svp

Thierry



echo "fichier665778.txt"|sed -e "s/[0-9]//g"

JYL

Avatar
thierry escola
Marc Lasson wrote:
thierry escola wrote:

bonsoir,

dans la chaine "fichier65553.txt"
sous bash je cherche à séparer la partie alpha de la partie numérique
et uniquement récupérer "fichier"



Si tu souhaites retirer tout ce qu'il y a après le premier chiffre (y
compris l'extension (.txt ici).

---
bash-2.05a$ chaine=fichier6553.txt
bash-2.05a$ echo ${chaine%%[0-9]*}
fichier
---



merci beaucoup, c'est exactement ça que je désirais

désolé pour les autres contributeurs mais je ne me serais pas permis de
poser la question sans avoir cherché au moins 1 heure et quand on voit
la simplicité de la réponse, c'est quand même mieux de partager les
connaissances que de ramer tout seul dans son coin.

Thierry
--
http://members.fortunecity.fr/tagada/


Avatar
Pascal Bourguignon
Jean-Yves LENHOF writes:

On Sat, 30 Aug 2003 23:12:31 +0200, thierry escola wrote:

bonsoir,

dans la chaine "fichier65553.txt"
sous bash je cherche à séparer la partie alpha de la partie numérique
et uniquement récupérer "fichier"
je compte traiter ainsi tout un lot de noms de fichier suivis de chiffres
pourriez-vous m'aider svp

Thierry



echo "fichier665778.txt"|sed -e "s/[0-9]//g"


Et vlan un pipe et un process inutile!

for f in *.txt ; do
se=${f/.txt}
echo ${se//[0-9]}
done

--
__Pascal_Bourguignon__ http://www.informatimago.com/
----------------------------------------------------------------------
Do not adjust your mind, there is a fault in reality.


Avatar
Jaunay Paul
Tu as plusieurs possibilités, si tu connais l'extension, basename file
".ext" te renvoie le nom sans extension, sinon, il te reste awk
awk -F . '{ print $2 }'

Cordialement


--


-------------------------------------------------------------------------
FIGHT BACK AGAINST SPAM!
Download Spam Inspector, the Award Winning Anti-Spam Filter
http://mail.giantcompany.com


"thierry escola" a écrit dans le message de
news:
bonsoir,

dans la chaine "fichier65553.txt"
sous bash je cherche à séparer la partie alpha de la partie numérique et
uniquement récupérer "fichier"
je compte traiter ainsi tout un lot de noms de fichier suivis de chiffres
pourriez-vous m'aider svp

Thierry
--
http://members.fortunecity.fr/tagada/



Avatar
thierry escola
Jaunay Paul wrote:
Tu as plusieurs possibilités, si tu connais l'extension, basename file
".ext" te renvoie le nom sans extension, sinon, il te reste awk
awk -F . '{ print $2 }'

Cordialement




pour un basename, ça allait. mais pour awk, je ne connais pas du tout.
j'ai utilisé ${fichier%%[0-9]*} qu'on m'a donné et là je trouve que bash
a la commande qui correspond exactement à ce que je cherchais

Thierry
--
http://members.fortunecity.fr/tagada/