Uso de semillas
Sintaxis
$ sed [options] command [input-file]
Con tubería
$ cat report.txt | sed 's/Nick/John/g'
$ echo '123abc' | sed 's/[0-9]+//g'
Ejemplos de opciones
| Opción |
Ejemplo |
Descripción |
-i |
sed -ibak ‘s/On/Off/’ php.ini |
Copia de seguridad y modificación del archivo de entrada directamente |
-E |
sed -E ‘s/[0-9]+//g’ input-file |
Usa expresiones regulares extendidas |
-n |
sed -n ‘3 p’ config.conf |
Suprimir la impresión de espacio de patrón predeterminado |
-f |
sed -f script.sed config.conf |
Ejecutar archivo de script sed |
-e |
sed -e ‘command1’ -e ‘command2’ input-file |
Ejecute múltiples comandos sed |
Múltiples comandos
$ echo "hello world" | sed -e 's/h/H/g' -e 's/w/W/g'
Usar -e para ejecutar múltiples comandos sed
Guión sed
$ echo 's/h/H/g' >> hello.sed
$ echo 's/w/W/g' >> hello.sed
$ echo "hello world" | sed -f hello.sed
Usar -f para ejecutar el archivo de script sed
Ejemplos
$ sed 's/old/new/g' file.txt
$ sed 's/old/new/g' file.txt > new.txt
$ sed 's/old/new/g' -i file.txt
$ sed 's/old/new/g' -i.backup file.txt
Comandos sed
Comandos
| Comando |
Ejemplo |
Descripción |
p |
sed -n ‘1,4 p’ input.txt |
Líneas de impresión 1-4 |
p |
sed -n -e ‘1,4 p’ -e ‘6,7 p’ input.txt |
Imprima las líneas 1-4 y 6-7. |
d |
sed ‘1,4 d’ input.txt |
Líneas de impresión excepto 1-4 |
w |
sed -n ‘1,4 w output.txt’ input.txt |
Escribir espacio de patrón en el archivo |
a |
sed ‘2 a new-line’ input.txt |
Agregar línea después |
i |
sed ‘2 i new-line’ input.txt |
Insertar línea antes |
Comandos especiales
| Comando |
Descripción |
n |
Imprima el espacio del patrón, vacíe el espacio del patrón y lea la siguiente línea |
x |
Intercambiar espacio de patrón con espacio de retención |
h |
Copie el espacio del patrón para mantener el espacio |
H |
Agregar espacio de patrón para mantener el espacio |
g |
Copiar espacio de retención al espacio del patrón |
G |
Agregar espacio de retención al espacio de patrón |
Banderas
$ sed 's/old/new/[flags]' [input-file]
| Bandera |
Descripción |
g |
Sustitución global |
1,2... |
Sustituya la enésima ocurrencia |
p |
Imprima solo la línea sustituida |
w |
Escriba solo la línea sustituida en un archivo |
I |
Ignora el caso mientras buscas |
e |
Sustituir y ejecutar en la línea de comando |
Comandos de bucle
| Comando |
Descripción |
b label |
Sucursal a una etiqueta (para bucle) |
t label |
Sucursal a una etiqueta solo en sustitución exitosa (para bucle) |
:label |
Etiqueta para los comandos byt (para bucle) |
N |
Agregar siguiente línea al espacio del patrón |
P |
Imprima la primera línea en varias líneas |
D |
Eliminar la primera línea en varias líneas |
Banderas de misceláneos
| Bandera |
Descripción |
/|^@!# |
|
& |
Obtiene el patrón combinado |
( ) \1 \2 \3 |
Grupo usando ( y ). Usar \1, \2 en reemplazo para referir al grupo |
Ejemplos de semillas
Sustitución de texto
$ sed 's/old/new/g' file.txt
$ sed 's/old/new/g' file.txt > new.txt
$ sed 's/old/new/g' -i file.txt
$ sed 's/old/new/g' -i.backup file.txt
Buscar texto
$ sed -n '/hello/p' file.txt
$ sed -n '/hello/Ip' file.txt
$ sed -n '/hello/!p' file.txt
Líneas de aplicación
$ sed '2a Text after line 2' file.txt
$ sed '$a THE END!' file.txt
$ sed '3~3a Some text' file.txt
Numeración
$ sed = file.txt | sed 'N;s/\n/\t/'
$ sed = file.txt | sed 'N; s/^/ /; s/ *\(.\{6,\}\)\n/\1 /'
$ sed '/./=' file.txt | sed '/./N; s/\n/ /'
$ sed -n '$='
Preparando líneas
$ sed '5i line number five' file.txt
$ sed '/hello/i Example: ' file.txt
Eliminar líneas
$ sed '5,7d' file.txt
$ sed '3~2d' file.txt
$ sed '$d' file.txt
$ sed '/^Hello/d' file.txt
$ sed '/^$/d' file.txt
$ sed '/^#/d' file.txt
Espaciado de archivos
$ sed G
$ sed '/^$/d;G'
$ sed 'G;G'
$ sed 'n;d'
$ sed '/regex/{x;p;x;}'
$ sed '/regex/G'
$ sed '/regex/{x;p;x;G;}'