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 samplei 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/DivGama 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,2y 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 patternPatró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 DivSe puede usar
0como 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 DivBuscar 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