J'essaie d'obtenir "abc.txt"
sur /this/is/could/be/any/path/abc.txt
aide de la commande Unix.
Notez que /this/is/could/be/any/path
est dynamique.
Une idée?
J'essaie d'obtenir "abc.txt"
sur /this/is/could/be/any/path/abc.txt
aide de la commande Unix.
Notez que /this/is/could/be/any/path
est dynamique.
Une idée?
En bash
:
path=/this/is/could/be/any/path/abc.txt
Si votre chemin contient des espaces, enveloppez-le dans "
path="/this/is/could/be/any/path/a b c.txt"
Ensuite, pour extraire le chemin, utilisez la fonction basename
file=$(basename "$path")
ou
file=${path##*/}
basename path
donne le nom du fichier à la fin du chemin
Éditer:
Il vaut probablement la peine d'ajouter qu'un modèle courant consiste à utiliser des guillemets arrière autour des commandes, par exemple `basename ...`, afin que les shells UNIX exécutent la commande et renvoient sa valeur textuelle.
Donc, pour affecter le résultat de basename à une variable, utilisez
x=`basename ...path...`
et $x sera le nom du fichier.
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.