Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 08/12/2017, à 09: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 smile

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, à 10:25

pingouinux

Re : Expessions régulières étendues

Bonjour,

virgile58 a écrit :

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 ].

En ligne

#3 Le 08/12/2017, à 10: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. hmm

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, à 10: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.

En ligne

#5 Le 08/12/2017, à 10: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, à 10:38)


KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github

Hors ligne

#6 Le 08/12/2017, à 10: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, à 10: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

En ligne

#8 Le 08/12/2017, à 10: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.

En ligne

#9 Le 08/12/2017, à 10: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 wink

Hors ligne

#10 Le 08/12/2017, à 10:56

pingouinux

Re : Expessions régulières étendues

virgile58 a écrit :

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 ?

En ligne

#11 Le 08/12/2017, à 14: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, à 14: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, à 15:07)

En ligne