2010-04-07 4 views
1

J'ai un chemin qui est stocké dans une variableObtenir un chemin d'accès partiel à un fichier dans un script bash

$ FULLPATH = «/cette/est/la/chemin/vers/ma/file.txt »

J'ai aussi une autre variable contenant un chemin partiel

$ pARTIELLE = «/cette/est/la/»

Je veux supprimer le chemin partiel du chemin complet de sorte que je suis parti avec:

chemin/vers/mon/f ile.txt

Quelle est la meilleure façon de faire cela?

+0

Comme toujours, je l'ai résolu 30 secondes après le dépôt. Je cours le chemin à travers sed et en supprimant le chemin partiel ... idiot me –

Répondre

3

opérateur de correspondance de motif Utiliser bash #:

${FULLPATH#${PARTIAL}} 
+0

Existe-t-il un moyen de modifier cela pour qu'il y ait un '/' optionnel? De cette façon, si '$ PARTIAL' n'a pas le'/', il sera toujours supprimé? – David

1

Si vous êtes sûr que $PARTIAL est un chemin réel:

result="${FULLPATH#$PARTIAL}" 
result="${result#/}" 
0
# echo $FULLPATH | sed 's#'"$PARTIAL"'##' 
3

est ici un peu plus en détail à M. Klatchko Excellents answer:

$ FULLPATH="/this/is/the/path/to/my/file.txt" 
$ PARTIAL="/this/is/the/" 
$ echo ${FULLPATH#${PARTIAL}} 
path/to/my/file.txt 
Questions connexes