Précédent   Forum des professionnels en informatique > Systèmes > Linux > Applications > Shell
Shell Vos questions sur l'utilisation des commandes shell
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 15/11/2006, 16h05   #1
Membre Expert
 
Avatar de GLDavid
 
Inscription : janvier 2003
Messages : 2 620
Détails du profil
Informations personnelles :
Âge : 35

Informations forums :
Inscription : janvier 2003
Messages : 2 620
Points : 2 474
Points : 2 474
Par défaut Regexp shell pour sed

Bonjour

Voici mon problème. Si j'ai un chemin complet d'un fichier : /home/toto/titi/tata/file.txt
Je veux pouvoir extraire de ce chemin uniquement le nom du fichier, de sorte de n'avoir que file.txt contenu dans une variable d'un script shell.
J'avais pensé à la construction suivante:
Code :
1
2
 
ls /home/toto/titi/tata/file.txt | sed -e 's/(\/\w*){1,}//'
Seulement, la sortie me redonne le path complet
A noter que cette construction:
Code :
1
2
 
ls /home/toto/titi/tata/file.txt | sed -e 's/\/\w*//'
me donne la sortie: /toto/titi/tata/file.txt
Mon problème viendrait donc de la quantification de ma regexp ?

Merci d'avance.

@++
__________________
GLDavid
Consultez la FAQ Perl ainsi que mes cours de Perl.
N'oubliez pas les balises code ni le tag

Je ne répond à aucune question technique par MP.
GLDavid est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/11/2006, 16h19   #2
Modérateur
 
Avatar de ggnore
 
Inscription : juillet 2004
Messages : 2 245
Détails du profil
Informations personnelles :
Âge : 33

Informations forums :
Inscription : juillet 2004
Messages : 2 245
Points : 1 902
Points : 1 902
non pas que je veuille te gâcher le plaisir de faire des regexp, mais as tu essayé basename ?

Code :
1
2
3
4
$ basename /usr/bin/basename 
basename
$ basename /usr/bin/ls       
ls
__________________
Toutes les vertus des hommes se perdent dans l’intérêt comme les fleuves se perdent dans la mer.
ggnore est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/11/2006, 16h19   #3
Membre Expert
 
Avatar de GLDavid
 
Inscription : janvier 2003
Messages : 2 620
Détails du profil
Informations personnelles :
Âge : 35

Informations forums :
Inscription : janvier 2003
Messages : 2 620
Points : 2 474
Points : 2 474
Thread autorésolu en appliquant celà:
Code :
1
2
 
ls /home/toto/tata/titi/file.txt | sed -e 's/.*\///'
Et ça me retourne file.txt.

@++
__________________
GLDavid
Consultez la FAQ Perl ainsi que mes cours de Perl.
N'oubliez pas les balises code ni le tag

Je ne répond à aucune question technique par MP.
GLDavid est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/11/2006, 16h21   #4
Membre Expert
 
Avatar de GLDavid
 
Inscription : janvier 2003
Messages : 2 620
Détails du profil
Informations personnelles :
Âge : 35

Informations forums :
Inscription : janvier 2003
Messages : 2 620
Points : 2 474
Points : 2 474
Salut ggnore !
Voilà une commande que je ne connaissais pas. Et bien, j'ai réinventé la roue avec ma regexp
Merci à toi pour l'info

GLDavid, qui aime se prendre la tête avec les regexp (réflexe de Perlien).
__________________
GLDavid
Consultez la FAQ Perl ainsi que mes cours de Perl.
N'oubliez pas les balises code ni le tag

Je ne répond à aucune question technique par MP.
GLDavid est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 07h09.


 
 
 
 
Partenaires

Hébergement Web