Introduction au langage Sed 2 – Les adresses

Cet article est la suite de Introduction au langage Sed.
Lire l’article suivant : Introduction au langage Sed 3 – substitution de texte

Une commande Sed peut être précédée d’une addresse. L’adresse sert tout simplement à sélectionner des lignes spécifiques d’un fichier, en vue de leur appliquer un traitement. Penser donc : « Je m’adresse à telle ligne » et non pas « adresse mémoire ».

Adresses numériques

Dans l’exemple suivant, l’adresse est un numéro de ligne (1) et l’action est p (print). Seule la première ligne du fichier /etc/group sera donc affichée.

$ sed -n '1p' /etc/group
root:x:0:

Il est possible de spécifier un intervalle de lignes en guise d’adresse. Pour afficher les lignes 4, 5 et 6, par exemple, on utilise l’adresse 4,6.

$ sed -n '4,6p' /etc/group
sys:x:3:
adm:x:4:
tty:x:5:

Pour afficher toutes les lignes sauf les 4ème, 5ème et 6ème, on utilise le caractère de négation !, placé derrière l’adresse :

$ sed -n '4,6!p' /etc/group
root:x:0:
daemon:x:1:
bin:x:2:
disk:x:6:
lp:x:7:
[...]

L’adresse spéciale $ signifie la dernière ligne. En effet, il faut bien pouvoir spécifier la dernière d’une manière ou d’une autre, alors que nous ne connaissons (normalement) jamais le nombre de ligne du fichier traité. La ligne de commande suivante affiche donc la dernière ligne de mon fichier /etc/group :

$ sed -n '$p' /etc/group
mysql:x:116:

Adresse sous forme d’expressions rationnelles

Nous y voilà ! Traiter du contenu texte sans l’aide des expressions rationnelles c’est un peu comme… scier une planche avec un couteau à steack.
On peut utiliser une expression rationnelle comme adresse, placée entre deux caractères /. L’exemple suivant affiche toute les lignes contenant la chaîne « xavier ».

$ sed -n '/xavier/p' /etc/group
dialout:x:20:xavier
cdrom:x:24:xavier
[...]
xavier:x:1000:
powerdev:x:115:xavier

Conclusion

Cet article n’est qu’une mise en bouche sur la manière d’adresser les lignes avec Sed. Pour en savoir plus, consultez la documentation référencée dans l’article précédent.
Lire l’article suivant : Introduction au langage Sed 3 – substitution de texte

Publicités

, , ,

  1. Poster un commentaire

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s

%d blogueurs aiment cette page :