Filtrage et manipulation de documents (awk, sed)
Les utilitaires awk
et sed
vous permettent de filtrer des documents selon leur contenu, voir d'effectuer des opérations sur ce contenu :
awk
traite un document organisé par colonnes, avec un séparateur paramétrablesed
: permet de réaliser des remplaçements, suppressions, insertions, ...
Je ne vous cacherai pas que l'utilisation des outils awk
et sed
n'est pas immédiate notamment parce que ces outils reposent sur l'utilisation d'expressions régulières. Vous trouverez plusieurs exemples d'utlisation de ces commandes dans les TPs.
awk
Afficher la première colonne
Afficher la troisième colonne en précisant le séparateur ;
Afficher la troisième colonne si la deuxième colonne a une valeur plus petite que 10
sed
Remplacer une chaîne par une autre
La commande ci-dessous remplace (s
) toutes les occurences (g
) chaîne de caractères "avant" par "après" et retourne le résultat dans la sortie standard
Pour réaliser le changement "en place" (inplace), il faudra ajouter l'option -i
Expressions régulières
On peut utiliser des expressions régulières. Par exemple, pour supprimer tous les commentaires d'un fichier python :
La commande précédente cherche toutes les lignes qui commence ^
ou non par des
espaces [[:space:]]*
, suivi d'un '#' et supprime d
cette ligne. On a utilisé
des classes de caractères, décrites dans la documention de sed.