Aide linux expression rationnelle
Bonjour,
Etudiant en informatique je dois faire un tp linux mais j'ai du mal à tout assimilé. Est-ce que quelqu'un pourrait m'expliquer chaque manip à faire de sorte que je comprenne mieux et que je sois prêt pour mon évaluatoin s'il vous plait ?
Rendez-vous dans le répertoire /usr/include où vous rechercherez, dans les fichiers *.h les lignes
correspondant aux motifs suivants
A - Les lignes commençant par une minuscule. Une fois l'expression trouvée et testée vous
vérifierez le résultat en ajoutant un tube et un second grep recherchant les lignes commençant par
autre chose qu'une minuscule - normalement, vous ne devriez voir aucune ligne.
B - Les lignes commençant par 3 lettres minuscules et se terminant par 3 caractères autres que des
minuscules.
C - Les lignes ne contenant aucune majuscule. Une fois l'expression trouvée, vous ferez comme en
A pour vérifier votre résultat.
D - La commande grep associée à l'option « -v » permet d'afficher les lignes ne répondant pas au
motif (sélection inverse). Recherchez les lignes ne contenant pas le mot « printf ». Comme en A etC, vérifiez votre résultat.
E - Les lignes comprenant trois caractères, a, b, c, d ou e identiques à la suite (aaa, eee ....)
F - Les lignes comprenant un nombre entier d'au moins 8 chiffres. Pour ce faire, veillez à ce que le
motif reconnu soit bien un nombre, à savoir une suite de chiffres autour de laquelle on trouve un
séparateur : espace, fin de ligne, = ....
G - En utilisant les blocs et rappels de blocs, identifiez les lignes contenant un même mot 3 fois. Un
mot est définit comme une suite de lettres autour de laquelle il y a autre chose que des lettres. Les
mots peuvent être séparés les uns des autres par d'autres mots.
H - Les lignes contenant un nombre compris entre 400 et 450. (450 exclus)
I - Les lignes contenant un nombre réel (suite de chiffres incluant un et 1 seul point)
Etudiant en informatique je dois faire un tp linux mais j'ai du mal à tout assimilé. Est-ce que quelqu'un pourrait m'expliquer chaque manip à faire de sorte que je comprenne mieux et que je sois prêt pour mon évaluatoin s'il vous plait ?
Rendez-vous dans le répertoire /usr/include où vous rechercherez, dans les fichiers *.h les lignes
correspondant aux motifs suivants
A - Les lignes commençant par une minuscule. Une fois l'expression trouvée et testée vous
vérifierez le résultat en ajoutant un tube et un second grep recherchant les lignes commençant par
autre chose qu'une minuscule - normalement, vous ne devriez voir aucune ligne.
B - Les lignes commençant par 3 lettres minuscules et se terminant par 3 caractères autres que des
minuscules.
C - Les lignes ne contenant aucune majuscule. Une fois l'expression trouvée, vous ferez comme en
A pour vérifier votre résultat.
D - La commande grep associée à l'option « -v » permet d'afficher les lignes ne répondant pas au
motif (sélection inverse). Recherchez les lignes ne contenant pas le mot « printf ». Comme en A etC, vérifiez votre résultat.
E - Les lignes comprenant trois caractères, a, b, c, d ou e identiques à la suite (aaa, eee ....)
F - Les lignes comprenant un nombre entier d'au moins 8 chiffres. Pour ce faire, veillez à ce que le
motif reconnu soit bien un nombre, à savoir une suite de chiffres autour de laquelle on trouve un
séparateur : espace, fin de ligne, = ....
G - En utilisant les blocs et rappels de blocs, identifiez les lignes contenant un même mot 3 fois. Un
mot est définit comme une suite de lettres autour de laquelle il y a autre chose que des lettres. Les
mots peuvent être séparés les uns des autres par d'autres mots.
H - Les lignes contenant un nombre compris entre 400 et 450. (450 exclus)
I - Les lignes contenant un nombre réel (suite de chiffres incluant un et 1 seul point)
A voir également:
- Aide linux expression rationnelle
- Linux reader - Télécharger - Stockage
- Expression écrite cm1 cm2 télécharger gratuit - Télécharger - Éducatifs
- Toutou linux - Télécharger - Systèmes d'exploitation
- Backtrack linux - Télécharger - Sécurité
- R-linux - Télécharger - Sauvegarde
1 réponse
Pour commencer :
https://www.commentcamarche.net/infos/25899-demander-de-l-aide-pour-vos-exercices-sur-ccm/
On peut donc t'expliquer les points de cours des expressions régulières que tu n'as pas compris, répondre à un problème particulier, mais a priori, on n'est pas là pour faire ton exercice à ta place.
Je t'invite à relire ton cours sur les automates et les expressions régulières. Il faut juste comprendre qu'un automate maintient un ensemble d'état connectés par des transitions. On traverse tel ou tel arc en fonction du caractère qu'on lit. Le formalisme des expressions régulières ne sert qu'à donner une chaîne de caractères (pattern) qui décrit cet automate.
Par exemple dans la syntaxe grep : "^a*b$" décrit une chaîne qui commence par une suite de 0 ou plus caractère(s) "a", suivi d'un b et d'un caractère de fin de ligne.
Concrètement tu as donc un sommet initial (appelons-le 0) avec deux arcs sortants :
- un arc qui boucle sur 0 (si le caractère lu est "a")
- un arc qui pointe vers un état 1 (si le caractère lu est "b")
Pour l'état 1, soit tu lis un caractère de fin de ligne et tu passes dans l'état 2, soit pas (et la chaîne ne correspond pas au motif)
L'état 2 est un état final, si on y arrive et qu'on a fini de lire la chaîne, alors cette chaîne correspond au pattern.
La seule chose ensuite qu'il reste à comprendre, c'est à quoi en terme d'automate correspondent les différents méta-caractères (^, $, *....) et tout cela est expliqué dans :
Bonne chance
https://www.commentcamarche.net/infos/25899-demander-de-l-aide-pour-vos-exercices-sur-ccm/
On peut donc t'expliquer les points de cours des expressions régulières que tu n'as pas compris, répondre à un problème particulier, mais a priori, on n'est pas là pour faire ton exercice à ta place.
Je t'invite à relire ton cours sur les automates et les expressions régulières. Il faut juste comprendre qu'un automate maintient un ensemble d'état connectés par des transitions. On traverse tel ou tel arc en fonction du caractère qu'on lit. Le formalisme des expressions régulières ne sert qu'à donner une chaîne de caractères (pattern) qui décrit cet automate.
Par exemple dans la syntaxe grep : "^a*b$" décrit une chaîne qui commence par une suite de 0 ou plus caractère(s) "a", suivi d'un b et d'un caractère de fin de ligne.
Concrètement tu as donc un sommet initial (appelons-le 0) avec deux arcs sortants :
- un arc qui boucle sur 0 (si le caractère lu est "a")
- un arc qui pointe vers un état 1 (si le caractère lu est "b")
Pour l'état 1, soit tu lis un caractère de fin de ligne et tu passes dans l'état 2, soit pas (et la chaîne ne correspond pas au motif)
L'état 2 est un état final, si on y arrive et qu'on a fini de lire la chaîne, alors cette chaîne correspond au pattern.
La seule chose ensuite qu'il reste à comprendre, c'est à quoi en terme d'automate correspondent les différents méta-caractères (^, $, *....) et tout cela est expliqué dans :
man grep
Bonne chance
Merci pour m'avoir expliqué je vais essayé avec mon cours.