modiier un path

Le
dudul
Bonjour,

J'utilise des variables PATH comme ceci par exemple :

/home/truc/machin/chose/nom_fichier

et je voudrais pouvoir transformer cela en

/home/truc/machin/chose

J'ai beaucoup de mal avec les expressions reguliere, pouvez vous maider,
merci
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
Pascal Bourguignon
Le #731942
"dudul"
Bonjour,

J'utilise des variables PATH comme ceci par exemple :

/home/truc/machin/chose/nom_fichier

et je voudrais pouvoir transformer cela en

/home/truc/machin/chose

J'ai beaucoup de mal avec les expressions reguliere, pouvez vous maider,
merci


Le problème, c'est que tu ne sais pas (ou en tout cas ne nous dis pas)
ce que tu veux.

Est ce que tu veux supprimer dans tous les chemins dans la variable
PATH exactement "/nom_fichier" à la fin du chemin, ou bien est ce que
tu veux supprimer ce qu'il y a après exactement
"/home/truc/machin/chose", ou bien est ce que tu veux supprimer ce
qu'il y a à plus de quatre niveau de profondeur, etc?

En supposant la première question:

PATH=$( echo "$PATH" | sed -e 's-/nom_fichier:-:-g' -e 's-/nom_fichier$--' )


--
__Pascal Bourguignon__
http://www.informatimago.com
http://pjb.ogamita.org

Benoit Izac
Le #731941
Bonjour,

le 13/03/2007 à 23:02, dudul a écrit dans le message

J'utilise des variables PATH comme ceci par exemple :

/home/truc/machin/chose/nom_fichier

et je voudrais pouvoir transformer cela en

/home/truc/machin/chose


"${PATH%/*}" ou `dirname "$PATH"`

--
Benoit Izac

Stephane Chazelas
Le #731940
2007-03-13, 23:02(+01), dudul:
Bonjour,

J'utilise des variables PATH comme ceci par exemple :

/home/truc/machin/chose/nom_fichier

et je voudrais pouvoir transformer cela en

/home/truc/machin/chose

J'ai beaucoup de mal avec les expressions reguliere, pouvez vous maider,
merci
[...]


IFS=:
set -f
a=$PATH:tail
set -- $a
n=$#
while [ "$n" -gt 1 ]; do
if [ -n "$1" ] && [ -e "$1" ]] && ! [ -d "$1" ]; then
set -- "$@" "$(dirname -- "$1")"
else
set -- "$@" "$1"
fi
shift
n=$(($n - 1))
done
shift
PATH="$*"

Remplace toutes les composantes de $PATH qui sont des
non-repertoires par leur dirname.

(pas testé)

--
Stéphane

Publicité
Poster une réponse
Anonyme