• Aucun résultat trouvé

TD N°:3 – Expressions régulières

N/A
N/A
Protected

Academic year: 2022

Partager "TD N°:3 – Expressions régulières"

Copied!
4
0
0

Texte intégral

(1)

TD N°:3 – Expressions régulières

1 Tri

Comptez le nombre de lignes, de mots.

wc –l liste.txt ; wc –w liste.txt

Triez le fichier par ordre alphabétique des étudiants sort –k1 liste.txt

par note décroissante dans la matière A, puis B sort –k4rn –k5rn liste.txt

par matière sort –k2 liste.txt

Filtrez le fichier pour récupérer les étudiants d'informatique.

grep –w info liste.txt

Faites de meme pour les étudiants de physique et de mathématique.

grep –v –w info liste.txt

Filtrez le fichier pour récupérer la liste des étudiantes puis la liste des étudiants.

grep –w F liste.txt; grep –w M liste.txt

Filtrez les étudiants par filière, et affichez UNIQUEMENT les prénoms.

sort –k2 liste.txt | cut –f 1

Créez le fichier math_hommes.txt qui contient les étudiants classés par filières, par sexe, ainsi qu'en note décroissante.

grep –w M liste.txt | sort –k2,2 –k4rn –k5rn > math_hommes.txt

2 Expression régulière : premiers pas

1.

(.

|\

n)

{5}

2. \\*\**

3. ˆ#.*$

(2)

4.

[0-9]+(

\

.[0-9]+)?(E[+-] ?[0-9]+) ?

5. ˆ [A-Z][A-Za-z]*(\ [A-Za-z]+)*\.$

6. abcde[A-Za-z_]{3}/\.ext

3 Noms de fichiers/répertoire

1) Se placer dans le répertoire /usr/bin

> cd /usr/bin

2) Afficher les fichiers commençant par d

> ls d*

3) Afficher les fichiers dont la deuxième lettre est un d

> ls ?d*

4) Afficher les fichiers commençant et finissant par un d

> ls d*d

5) Afficher les fichiers commençant ou finissant par un d

> ls {d*,*d}

6) Afficher les fichiers commençant et ne finissant pas par un d

> ls d*[^d]

7) Afficher les fichiers commençant par un d ou un x

> ls [dx]*

8) Afficher les fichiers du répertoire /usr/bin/X11 se terminant par un chiffre

> ls /usr/bin/X11/*[0-9]

9) Afficher les fichiers du répertoire /usr/bin/X11 contenant un chiffre et ne se terminant

pas par un chiffre

> ls /usr/bin/X11/*[0-9]*[^0-9]

4 Caractères spéciaux

1) Se placer dans le répertoire SYS de votre répertoire d'accueil.

> cd ~/SYS

2) Créer 4 fichiers de noms respectifs X\$Y, X?Y, X*Y et X**Y

> touch X\$Y X\?Y X\*Y X\*\*Y

> ls

X$Y X*Y X**Y X?Y

3) Visualiser les fichiers ayant au moins un $ ou un ? ou un * dans leur nom

> ls *[\$?*]* ou ls *[\$\?\*]*

X$Y X*Y X**Y X?Y

4) Exécuter la commande rm X?Y, sans confirmer les destructions. Pourquoi 3 destructions

sont-elles demandées ?

> rm X?Y

/bin/rm: remove `X$Y'?

/bin/rm: remove `X*Y'?

/bin/rm: remove `X?Y'?

(3)

X?Y est substitué par X$Y X*Y X?Y

> echo X?Y X$Y X*Y X?Y

> echo X*Y X$Y X*Y X?Y

5) Détruire les 4 fichiers

> rm X*Y

/bin/rm: remove `X$Y'? y /bin/rm: remove `X*Y'? y /bin/rm: remove `X**Y'? y /bin/rm: remove `X?Y'? y

X*Y est substitué par X$Y X*Y X**Y X?Y 6) Créer un fichier de nom -l

> touch -l

touch: invalid option -- l

Try `touch --help' for more information.

> touch -- -l ou

> touch ./-l

Le - est pris comme une option de la commande. Il faut donc tromper la commande pour

que le - ne soit pas le début du nom de fichier. On aurait aussi pu donner le nom absolu

du fichier à créer.

7) Visualiser ce seul fichier avec la commande ls

> ls -- -l ou

> ls ./-l

8) Détruire ce fichier, en expliquant les problèmes rencontrés

> rm -- -l idem

> rm ./-l

5 Le fichier expReg

Donner les commandes qui permettent d'afficher les lignes du fichier expReg possédant les

caractéristiques suivantes :

1) Les lignes débutant par une majuscule et se terminant par un point (.) grep '^[A-Z].*\.$' expReg

2) Les lignes contenant un mot de 11 lettres minimum grep '\w\{11,\}' expReg

3) Les lignes contenant 2 fois le mot partir grep '\(.*partir\)\{2\}' expReg 4) Les lignes contenant au moins 6 mots

grep '\(\(\b\| \+\)"\?\w\+"\?\)\{6,\}' expReg 5) Les lignes contenant un nombre supérieur à 27

(4)

grep '2[89]\|3[0-9]\|[1-9]\+[0-9]\{2,\}' expReg 6) Les lignes contenant un nombre compris entre 27 et 314 exclus

grep '\(\b| \)\(\([3-9]\|[1-2][0-9]\|30\)[0-9]\|31[0-3]\)\(\b|

\)' expReg ou

grep '\(\b\| \)\(2[89]\|30\?[0-9]\|[1-2][0-9]\{2\}\|31[0-3]\}\)

\(\b\| \)' expReg

7) Les lignes ne contenant que des nombres compris entre 27 et 314 exclus

grep '^\(\(\| \)\(2[8-9]\|\([3-9]\|[1-2][0-9]\|30\)[0-9]\|31[0-3]

\)\)\+$' expReg

6 Génome

ARCCGKKN : A[AG]CCG[GT][GT].

SMANAAAAAA : [GC][AC]A.A{6}

AMYGGGTTAN : A[AC][CT]G{3}TTA.

SGGATTAN : [GC]GGATTA.

GTANTNN : GTA.T..

([GC][AC]A.A{6}|A[AC][CT]G{3}TTA.){2}

grep –B 1 –E ‚[GC][AC]A.A{6}’ dmel.fasta

Références

Documents relatifs

[r]

L'opération d'interprétation L associe à une expression rationnelle sur l'alphabet Σ un langage sur le même alphabet de manière récursive avec les règles suivantes...

[r]

les instructions sont exécutées pour chaque ligne où la valeur chaîne de l'expression contient une chaîne satisfaisant à l'expression régulière. expression !/expression

cyrille@cyrille:~$ sed "s/pluie/soleil/g" essaised | grep -v "^$" | tee resultatsed soleil soleil neige

[^ac] reconnaît n'importe quel caractère sauf a et c, ou [^0-9] reconnaît n'importe quel caractère qui n'est pas numérique. A l'aide des classes de caractères, cherchez les

- Nous allons spécifier les tokens d’un langage de programmation en util- isant une notation formelle appelée le langage des expressions régulières. - Nous allons implémenter

La raison de cette suite est strictement négative. Donc le premier terme de la suite inférieur ou égal à 0 est le terme u 4... Le rang de ce terme est le rang