L`utilisation du shell

publicité
Objectifs :
→ Comprendre le fonctionnement différent de grep et awk
→ Comprendre l'utilité de awk
→ Enregistrer un fichier sous l'extension .csv
→ Savoir combiner les commandes pour réaliser des combinaisons plus complexes.
_______________________________________________
L'utilisation du shell
Awk : la recherche par colonne
Awk est plus puissant que grep. Il permet de rechercher des expressions au sein d'une seule colonne,
d'afficher le résultat de toute la ligne ou de quelques colonnes.
Forme générale : awk 'condition{commande (option)}' nomdufichier.txt
Dans awk, les lignes sont séquencées en plusieurs cellules, comme dans un tableau.
$ = colonne. Exemple : « $1 » : colonne 1.
NR = ligne. Exemple : « NR == 1 » : ligne 1.
Exemple : awk '{print $1}' Lexique381.txt
→ imprime la première colonne de Lexique381.txt
Les opérateurs logiques
== : exactement égal à
<= : inférieur ou égal à
>= : supérieur ou égal à
< : strictement inférieur à
> : strictement supérieur à
!= : pas égal à
!~ : ne contient pas
~/ / : qui contient
&& : et
|| : ou
Exemple : awk ' NR==1 {print}' Lexique381.txt
→ imprime la première ligne.
awk 'NR<=300 {print $1}' Lexique381.txt
→ imprime la première colonne des 300 premières lignes
awk '$1==''ôtées'' {print $1}' Lexique381.txt
→ imprime la première colonne des lignes contenant exactement « ôtées » dans leur
première colonne.
1
awk '$1~/ôté/ && $3~/ôté/ {print $1, $3}' Lexique381.txt
→ affiche la première et deuxième colonne des lignes contenant ôté dans les deux.
Les expressions rationnelles
Comme pour grep, on peut préciser si l'on cherche quelque chose se trouvant au début, à la
fin, après un certain nombre de caractères etc. d'une cellule.
^ = début
$ = fin
a* = entre 0 et une infinité de a
a.c = avec une lettre quelle qu'elle soit entre a et c.
Exercices :
Affichez le nom de la 5ème colonne
Affichez la 3ème colonne des lignes strictement supérieures à 140 000.
Les conditions du ''print''
Pour imprimer plusieurs colonnes {print $x, $y} → imprime juste la colonne x et la colonne y
séparées par un espace.
Pour imprimer plusieurs colonnes séparées par une tabulation {print $x, ''\t'', $y}. → imprime juste
la colonne x et la colonne y séparées par une tabulation.
Exercices :
Enregistrez la première ligne de Lexique381.txt dans le fichier head.csv.
Ajoutez-y les 3 premières colonnes de Lexique381.txt
Affichez toutes les mots contenant la syllabe orthographique « -ban- ».
Affichez tous les mots avec un nombre de lettres supérieur à 7.
Affichez tous les mots avec un nombre de syllabe supérieur à 3.
Affichez tous les mots (1ère colonne) appartenant à la catégorie grammaticale des verbes.
Awk, comme grep, sont compatibles avec le pipe. Ainsi essayez de résoudre les exercices suivants :
Affichez la 3ème colonne des 15 premières lignes.
Affichez le 4ème verbe contenu dans Lexique381.txt.
2
Téléchargement