Comment bien traiter son texte ?

Article présentant comment traiter du texte dans un environnement Unix/Linux.

Introduction

Je vous propose à présent de voir comment bien traiter du texte sur linux. Depuis que j'utilise linux je n'ai jamais pris vraiment le temps de m'interesser au traitement de texte. Lorsque je voyais des commandes qui utilise SED, AWK et GREP :

GREP

Grep est une commande de recherche de texte qui permet de rechercher des motifs de texte dans des fichiers ou dans la sortie d'autres commandes. Elle est très utile pour filtrer rapidement de grandes quantités de données et trouver des informations spécifiques. Pour résumer, grep permet de chercher un patern spécifique.

Pour bien comprendre voici un exemple :

  1. J'ai généré des adresses mails factices

for i in {1..400}; do echo $(openssl rand -hex 12)@$(shuf -n 1 -e gmail.com yahoo.com outlook.com hotmail.com); done > adresses_emails.txt
  1. Utilisation de grep afin qu'il me ressorte que les emails commençant par hotmail

raphgui@DESKTOP-P84MUVP:~/find/grep$ cat adresses_emails.txt | grep "hotmail"
eea040fa36e90cfcb1c74e4d@hotmail.com
42b57fa453b727a1c01f192d@hotmail.com
523973238492b039ea5d3d2a@hotmail.com
...
29a2ff9d7ca13bb5daa6df31@hotmail.com

SED

SED (Stream EDitor) est un outil de traitement de texte en ligne de commande dans les systèmes d'exploitation Unix/Linux. Il est principalement utilisé pour modifier le contenu d'un fichier ou la sortie d'autres commandes à l'aide d'expressions régulières et de commandes de substitution.

Un jour je continuerais mais

AWK

AWK est un langage de programmation de traitement de texte et d'analyse de données. Il tire son nom des initiales de ses inventeurs : Alfred Aho, Peter Weinberger et Brian Kernighan. AWK est souvent utilisé pour extraire des informations spécifiques à partir de fichiers de texte structurés, tels que des fichiers de données tabulaires ou des fichiers de configuration système.

Awk permet pour résumer d'un peu parser le texte de façon assez spécial. Pour se faire voici un exemple :

  1. Crée une liste tels que :

raphgui@DESKTOP-P84MUVP:~/find/awk$ cat exercice.txt
Dupont,Jean,35,Paris
Martin,Lucie,27,Lyon
...
Tremblay,Marie,42,Montreal
  1. Nous allons utiliser AWK afin de n'avoir par exemple que son prénom et la ville. Pour se faire nous allons retirer les virgules puis parser la data :

raphgui@DESKTOP-P84MUVP:~/find/awk$ awk -F ',' '{ print $2 " habite à " $4 }' exercice.txt
Jean habite à Paris
Lucie habite à Lyon
...
Marie habite à Montreal

Conslusion

Désormais, vous avez certaines bases pour utiliser et comprendre les outils de traitement de texte. J'espère vous avoir appris quelques choses.

Last updated