|
|
|
#1 |
|
Messages: n/a
Hébergeur: |
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 |
|
|
|
#2 |
|
Messages: n/a
Hébergeur: |
"dudul" <cnam79@free.fr> writes:
> 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 |
|
|
|
#3 |
|
Messages: n/a
Hébergeur: |
Bonjour,
le 13/03/2007 à 23:02, dudul a écrit dans le message <45f71dfe$0$6099$426a74cc@news.free.fr> : > 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 |
|
|
|
#4 |
|
Messages: n/a
Hébergeur: |
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 |
|
![]() |
| Outils de la discussion | |
|
|