#1 Le 08/12/2017, à 08:48
- virgile58
Expessions régulières étendues
Bonjour,
Je suis bloqué sur un exercice pour mon université concernant une commande unix depuis quelques jours.
La voici :
"Quelle ligne de commande devez-vous taper pour afficher les lignes contenant une suite non vide de caractères quelconques entre crochets [....] dans tous les fichiers dont le nom ne se termine pas par une lettre minuscule ni les chiffres 1, 4 et 9 dans tous les sous-répertoires de /tmp/grep ?"
Pour l'instant voici ce que j'ai essayé :
grep -E '.'+ /tmp/grep/*/*[!a-z149]
grep -E '[.]+' /tmp/grep/*/*[!a-z149]
grep -E '[.]'+ /tmp/grep/*/*[!a-z149]
Quand on indique des mauvaises réponse, il arrive que le programme nous donne des indices. Ici il me donne souvet l'indice : "Il faut protéger le crochet ouvrant de l'expression régulière avec un backslash."
Du coup j'ai également essayé :
grep -E '\[.]+' /tmp/grep/*/*[!a-z149]
grep -E '\[.]'+ /tmp/grep/*/*[!a-z149]
J4ai essayé plusieurs autres commande également mais j'en ai testé tellement que je ne me rappelle plus lesquelles ahah
J'ai bien conscience qu'essayer des commande "au hasard" n'ai pas forcément très bénéfique pour progresser mais après avoir essayé dse réponses qui me semblaient juste j'ai du essayer des commandes aléatoirement.
Merci d'avance
Hors ligne
#2 Le 08/12/2017, à 09:25
- pingouinux
Re : Expessions régulières étendues
Bonjour,
Quelle ligne de commande devez-vous taper pour afficher les lignes contenant une suite non vide de caractères quelconques entre crochets [....]
Pour cette partie de la question
grep -E '\[[^]]+]' fichier
J'ai supposé que les caractères entre [ ] ne peuvent pas être des ].
Hors ligne
#3 Le 08/12/2017, à 09:29
- virgile58
Re : Expessions régulières étendues
Alors merci pour ta réponse,
Cependant même si la commande fonctionne, ce n'est pas la réponse attendue par le prof.
Quand je met la commande "grep -E '\[.]'+ /tmp/grep/*/*[!a-z149]", le site m'indique que ma commande contient les bon caractères. Je doit donc trouver une commande contenant ces caractères.
Hors ligne
#4 Le 08/12/2017, à 09:37
- pingouinux
Re : Expessions régulières étendues
Quand je met la commande "grep -E '\[.]'+ /tmp/grep/*/*[!a-z149]", le site m'indique que ma commande contient les bon caractères. Je doit donc trouver une commande contenant ces caractères.
Je ne comprends pas ce que tu veux dire.
Hors ligne
#5 Le 08/12/2017, à 09:37
- Hizoka
Re : Expessions régulières étendues
Salut, perso je ferai ça s'il faut garder les mêmes caractères :
grep -E '\[.+\]' /tmp/grep/*/*[!a-z149]
egrep '\[.+\]' <<< "oui
[oui][oui]
popo[caca]pipi
[]
non"
[oui][oui]
popo[caca]pipi
Dernière modification par Hizoka (Le 08/12/2017, à 09:38)
KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github
Hors ligne
#6 Le 08/12/2017, à 09:41
- virgile58
Re : Expessions régulières étendues
on rentre toutes nos réponses sur un site qui nous indique si la commande est correcte ou non pour chaque question.
Si on a du mal des indices nous sont donnés. Parmi ces indices, il y en a un qui permet de nous dire quels sont les caractères manquants et quels sont les caractères en trop dans la commande que l'ont met.
Et quand je met la commande "grep -E '\[.]'+ /tmp/grep/*/*[!a-z149]", le site nous indique qu'il ne manque aucun caractère par rapport à la réponse attendu.
Hors ligne
#7 Le 08/12/2017, à 09:43
- pingouinux
Re : Expessions régulières étendues
@Hizoka #5 :
Je ne suis pas certain qu'il faille lister ce genre de ligne, que ta commande récupère aussi
deb[]]]]fin
Hors ligne
#8 Le 08/12/2017, à 09:46
- pingouinux
Re : Expessions régulières étendues
@virgile58 #6 :
Il y a presque toujours de multiples façons de résoudre ce genre de problème, et là ça devient de la devinette.
Hors ligne
#9 Le 08/12/2017, à 09:51
- virgile58
Re : Expessions régulières étendues
ok bon du coup la bonne réponse était "grep -E '\[.+]' /tmp/grep/*/*[!a-z149]"
merci pour votre aide
Hors ligne
#10 Le 08/12/2017, à 09:56
- pingouinux
Re : Expessions régulières étendues
ok bon du coup la bonne réponse était "grep -E '\[.+]' /tmp/grep/*/*[!a-z149]"
Est-ce normal que ta commande récupère aussi la ligne que j'indique en #7 ?
Hors ligne
#11 Le 08/12/2017, à 13:16
- Hizoka
Re : Expessions régulières étendues
pingouinux => je suis d'accord avec toi mais vu qu'il disait qu'il fallait utiliser les caractères qu'il donnait...
KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github
Hors ligne
#12 Le 08/12/2017, à 13:58
- krodelabestiole
Re : Expessions régulières étendues
virgile58 tu pourrais stp nous donner un liste d'exemples de ce que tu veux que ta regex match et ne match pas ?
par ex. :
http://refiddle.com/nqt7
je suis pas sûr d'avoir pigé ce que tu veux exactement
Dernière modification par krodelabestiole (Le 08/12/2017, à 14:07)
nouveau forum ubuntu-fr on en parle là : refonte du site / nouveau design
profil - sujets récurrents - sources du site
En ligne