Chaîne contient une *

Résolu/Fermé
Lapourax Messages postés 3006 Date d'inscription vendredi 15 mars 2013 Statut Contributeur Dernière intervention 17 février 2023 - 21 mai 2013 à 15:38
Lapourax Messages postés 3006 Date d'inscription vendredi 15 mars 2013 Statut Contributeur Dernière intervention 17 février 2023 - 22 mai 2013 à 16:51
Salut !

Je fais du script shel et je cherche à savoir comment déterminer si une chaîne de caractères contient une *

Pour remettre dans le contexte, ma chaîne contient un path de dossier

je dois tester si le dossier existe mais si 'ai une * ( ex /home/* ) le test me renvoie une erreur et sa même si un dossier ( pour garder mon exemple /home/root ) existe

Et vu que * est un caractère un peu spécial je me demande comment gérer sa...

Merci d'avance ! =)

4 réponses

snipp Messages postés 75 Date d'inscription lundi 20 mai 2013 Statut Membre Dernière intervention 6 août 2013 17
21 mai 2013 à 16:05
Salutations,

* est repris comme une wildcard.

voir : https://fr.wikipedia.org/wiki/M%C3%A9tacaract%C3%A8re

* représente un ou plusieur caractère.
1
jisisv Messages postés 3645 Date d'inscription dimanche 18 mars 2001 Statut Modérateur Dernière intervention 15 janvier 2017 934
21 mai 2013 à 16:16
Et par conséquent sous les shell bash-like (liste non exhaustive), un nom de fichier ou de répertoire contenant un joker '*' ou '*' doit être protégé:
johand@osiris: ~/tmp $ cd joker/
johand@osiris: ~/tmp/joker $ touch brol
johand@osiris: ~/tmp/joker $ touch 'truc*1'
johand@osiris: ~/tmp/joker $ ls -l
total 0
-rw-r--r-- 1 johand johand 0 mai 21 16:12 brol
-rw-r--r-- 1 johand johand 0 mai 21 16:13 truc*1
johand@osiris: ~/tmp/joker $ ls -l *\**
-rw-r--r-- 1 johand johand 0 mai 21 16:13 truc*1

1
Lapourax Messages postés 3006 Date d'inscription vendredi 15 mars 2013 Statut Contributeur Dernière intervention 17 février 2023 334
22 mai 2013 à 15:36
Ok merci à vous deux ! J'ai pu bidouiller pour faire ceque j'avais à faire autrement du coup =)
Encore merci et à bientôt !
0
Lapourax Messages postés 3006 Date d'inscription vendredi 15 mars 2013 Statut Contributeur Dernière intervention 17 février 2023 334
22 mai 2013 à 16:35
Par contre du coup j'ai un autre problème !
Sa doit être tout con mais je dois couper ma variable (toujours le path) pour obtenir le dossier parent (supprimer le dernier /exemple)

jai essayé avec cut mais vu que le dosser à un nom variable sa marche pas à tous les coups
sa doit se faire avec awk non ?
0
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 408
22 mai 2013 à 16:39
Salut,

$ echo ${var}
/home/toto/rep/exemple

$ echo ${var%/*}
/home/toto/rep
0
Lapourax Messages postés 3006 Date d'inscription vendredi 15 mars 2013 Statut Contributeur Dernière intervention 17 février 2023 334
22 mai 2013 à 16:51
Sa marche super =)
Merci !
0