question (bete ?) sur un script bash

Le
Professeur M
Bonsoir à tous,

la question est sûrement stupide mais je cale sur un premier script bash :

Comment extraire le nom d'un fichier/répertoire à partir de son chemin
complet ?

si je fais :
for REPERTOIRE in /home/*
do
echo "$REPERTOIRE a traiter"
done

cela me donne
/home/toto a traiter
/home/tata a traiter

j'aimerai juste récupérer toto et tata

Merci de vos lumières

Méph'
--
C'est parce que la lumière est plus rapide que le son que certains
ont l'air brillants avant d'avoir l'air con
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Luc.Habert.00__arjf
Le #1912738
Professeur Méphisto
:

Comment extraire le nom d'un fichier/répertoire à partir de son chemin
complet ?


${ploum##*/}

. Ce qui veut dire prendre le contenu de la variable ploum, et effacer son
plus long préfixe qui matche le motif « */ ». Au passage, si tu mets « # » à
la place de « ## », ça efface le plus court préfixe, et tu as pareil pour
les suffixe avec « %% » et « % » (donc pour enlever le nom du fichier et ne
garder que son chemin d'accès, ça serait « ${ploum%/*} »).

Des gens vont te dire « `dirname "$ploum"` », qui a le léger inconvénient
d'effacer les blancs qui se trouveraient à la fin de $ploum.

Professeur M
Le #1912737

${ploum##*/}


merci...

Des gens vont te dire « `dirname "$ploum"` », qui a le léger inconvénient
d'effacer les blancs qui se trouveraient à la fin de $ploum.


Dans le cas qui m'interresse, cela ne devrait pas poser de problème, mais
si ploum##*/ est plus propre...

Méph'

--
C'est parce que la lumière est plus rapide que le son que certains
ont l'air brillants avant d'avoir l'air con

Luc.Habert.00__arjf
Le #1912736
Professeur Méphisto

Dans le cas qui m'interresse, cela ne devrait pas poser de problème, mais
si ploum##*/ est plus propre...


Et plus court à taper, et plus efficace si le shell n'a pas basename en
builtin.

Luc.Habert.00__arjf
Le #1912735
Luc Habert :

Des gens vont te dire « `dirname "$ploum"` »


Lire basename à la place de dirname. Dirname, c'est l'équivalent de
${ploum%/*}.

Publicité
Poster une réponse
Anonyme