Bash Deepest Path
Submitted by PiTiLeZarD on Tue, 01/09/2007 - 17:11
Tagged:
Bon une fonction toute bête mais dans mon classpath il me fallait une succéssion de choses mais j'avais pas envie a chaque fois de redéfinir tout ... donc exemple :
__fichier test.sh
getCfg() { cfg=$1 count=`echo $cfg | cut -d. -f2 | sed 's/\// /g' | wc -w | sed 's/ //g'` while [ $count -gt 1 ] ; do cfg=$cfg:`echo $cfg | cut -d/ -f-$count` count=$(($count - 1)) done echo $cfg } echo `getCfg $*`
Voili quelques exemples d'utilisation parce que je sais que j'ai été super clair en le décrivant :
$ ./test.sh ./bin/FileBroker/ ./bin/FileBroker/:./bin $ ./test.sh ./cfg/FileBroker/common/ ./cfg/FileBroker/common/:./cfg/FileBroker:./cfg $ ./test.sh ./cfg/FileBroker/common/truc/machin/choz ./cfg/FileBroker/common/truc/machin/choz:./cfg/FileBroker/common/truc/machin:./cfg/FileBroker/common/truc:./cfg/FileBroker/common:./cfg/FileBroker:./cfg
Si vous ne voyez aucun intérêt a cette fonction ... c'est domage pour moi ... sinon ravi de vous avoir aidé =) moi je la note ici pour backup =)
edit
Sur une sun solaris, le wc -w renvoyait " 3" j'ai rajouté un sed pour supprimer les espaces sinon rien ne marchait !
