sed
Adresse et plage d'adresses
Recherche…
Introduction
Les commandes Sed peuvent être spécifiées pour agir uniquement sur certaines lignes en utilisant des adresses ou des plages d'adresses .
Ligne spécifique
$ cat ip.txt
address
range
substitution
pattern
sample
N ème ligne
$ sed -n '2p' ip.txt range $ sed '3d' ip.txt address range pattern sample
Dernière ligne
$ sed -n '$p' ip.txt sample
Gamme spécifique de lignes
$ cat ip.txt
address
range
substitution
pattern
sample
La plage spécifiée inclut ces numéros de ligne
$ sed -n '2,4p' ip.txt range substitution pattern
$
peut être utilisé pour spécifier la dernière ligne. L'espace peut être utilisé entre adresse et commande pour plus de clarté$ sed -n '3,$ s/[aeiou]//gp' ip.txt sbstttn pttrn smpl
i e ligne à i + j e ligne
$ sed '2,+2d' ip.txt address sample
i e ligne et i + j , i + 2 j , i + 3 j , etc.
$ sed -n '1~2p' ip.txt address substitution sample
Lignes correspondant au modèle d'expression régulière
$ cat ip.txt
address
range
substitution
pattern
sample
Add Sub Mul Div
Lignes correspondant à un motif
$ sed '/add/d' ip.txt range substitution pattern sample Add Sub Mul Div $ sed -n '/t/p' ip.txt substitution pattern $ sed -n '/[A-Z]/ s| |/|gp' ip.txt Add/Sub/Mul/Div
Gamme de motifs
$ sed -n '/add/,/sub/p' ip.txt address range substitution $ sed -n '/a/,/e/p' ip.txt address range pattern sample
Remarque
- Dans le deuxième exemple, il correspondait à deux plages - lignes
1,2
et lignes4,5
- Voir Utilisation de différents délimiteurs pour utiliser d'autres caractères au lieu de
/
pour spécifier le motif.
Correspondance insensible à la casse
$ sed -n '/add/Ip' ip.txt address Add Sub Mul Div $ sed -n '/add/I,/sub/p' ip.txt address range substitution Add Sub Mul Div
Spécification de la plage à l'aide du nombre et du motif
$ cat ip.txt
address
range
substitution
pattern
sample
Add Sub Mul Div
Numéro de ligne au motif correspondant à la ligne
$ sed -n '2,/pat/p' ip.txt range substitution pattern
Modèle de correspondance de ligne avec le numéro de ligne
$ sed '/pat/,$d' ip.txt address range substitution
Modèle de correspondance de lignes plus le nombre de lignes qui le suivent
$ sed -n '/add/I,+1p' ip.txt address range Add Sub Mul Div
0
peut être utilisé comme numéro de ligne de départ pour signaler la fin de la plage lorsque le motif correspond à la première ligne d'entrée$ sed -n '0,/r/p' ip.txt address $ sed -n '1,/r/p' ip.txt address range $ sed -n '0,/u/p' ip.txt address range substitution
Plage d'adresses négatives
$ cat ip.txt
address
range
substitution
1234
search pattern
sample
Add Sub Mul Div
Supprimer des lignes autres que l'adresse spécifiée
$ sed '/[0-9]/!d' ip.txt 1234 $ sed -n '/[0-9]/p' ip.txt 1234 $ sed '$!d' ip.txt Add Sub Mul Div $ sed -n '$p' ip.txt Add Sub Mul Div
Rechercher et remplacer des lignes ne correspondant pas à un motif
$ sed '/ /! s/^/#/' ip.txt #address #range #substitution #1234 search pattern #sample Add Sub Mul Div $ sed '/add/,/sub/! s/[aeiou]//gi' ip.txt address range substitution 1234 srch pttrn smpl dd Sb Ml Dv