sed
Dirección y rango de direcciones
Buscar..
Introducción
Los comandos sed se pueden especificar para actuar solo en ciertas líneas usando direcciones o rangos de direcciones .
Linea especifica
$ cat ip.txt
address
range
substitution
pattern
sample
Línea n th
$ sed -n '2p' ip.txt range $ sed '3d' ip.txt address range pattern sample
Última línea
$ sed -n '$p' ip.txt sample
Gama específica de líneas
$ cat ip.txt
address
range
substitution
pattern
sample
El rango especificado incluye esos números de línea
$ sed -n '2,4p' ip.txt range substitution pattern
$
se puede utilizar para especificar la última línea. Se puede utilizar el espacio entre la dirección y el comando para mayor claridad.$ sed -n '3,$ s/[aeiou]//gp' ip.txt sbstttn pttrn smpl
i th line to i + j th line
$ sed '2,+2d' ip.txt address sample
i th line e i + j , i +2 j , i +3 j , etc.
$ sed -n '1~2p' ip.txt address substitution sample
Líneas que coinciden con el patrón de expresión regular
$ cat ip.txt
address
range
substitution
pattern
sample
Add Sub Mul Div
Líneas que coinciden con un patrón
$ 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
Gama de patrones
$ sed -n '/add/,/sub/p' ip.txt address range substitution $ sed -n '/a/,/e/p' ip.txt address range pattern sample
Nota
- En el segundo ejemplo, combinó dos rangos: líneas
1,2
y líneas4,5
- Consulte Uso de diferentes delimitadores sobre cómo usar otros caracteres en lugar de
/
para especificar el patrón.
Partido insensible a mayúsculas
$ 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
Especificando rango usando tanto números como patrones
$ cat ip.txt
address
range
substitution
pattern
sample
Add Sub Mul Div
Número de línea para alinear el patrón
$ sed -n '2,/pat/p' ip.txt range substitution pattern
Patrón de coincidencia de línea a número de línea
$ sed '/pat/,$d' ip.txt address range substitution
Patrón de coincidencia de líneas más el número de líneas que lo siguen
$ sed -n '/add/I,+1p' ip.txt address range Add Sub Mul Div
Se puede usar
0
como número de línea de inicio para señalar el final del rango cuando el patrón coincide con la primera línea de entrada$ 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
Rango de direcciones negativas
$ cat ip.txt
address
range
substitution
1234
search pattern
sample
Add Sub Mul Div
Borrado de líneas distintas a la dirección especificada
$ 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
Buscar y reemplazar en líneas que no coinciden con un patrón
$ 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