Linux: comando sed

Los datos expuestos en este blog, son solo de índole informativo. Por favor realiza siempre una copia de seguridad antes de realizar cualquier cambio en tu proyecto.

Linux: comando sed

Este tutorial de Linux explica cómo usar Linux comando Con sintaxis y parámetros.

nombre

sed – Editor de secuencias para filtrar y transformar texto

resumen

sed [OPTION]… {script-only-if-no-other-script} [input-file]…

describir

lado es un editor de secuencias. Los editores de flujo se utilizan para realizar transformaciones de texto básicas en flujos de entrada (archivos o entrada de tuberías).Aunque en cierto modo es similar a los editores que permiten la edición de guiones (p. editar), sed Funciona haciendo solo una pasada de la entrada, por lo que es más eficiente.pero es sedLa capacidad de filtrar texto en la tubería, lo que en particular lo diferencia de otros tipos de editores.

-norte, – tranquilo, – silencio
Suprimir la impresión automática de espacios de patrón
-mi texto, – Rápido=texto
Agregue el script al comando que se ejecutará
-F archivo de comandos, – documento=archivo de comandos
Agregue el contenido del archivo de script al comando que se ejecutará
–seguir-enlaces simbólicos
Siga los enlaces simbólicos cuando procese en el lugar
-Una generación[SUFFIX], – en su lugar[=SUFFIX]

Edite el archivo en su lugar (haga una copia de seguridad si se proporciona una extensión)
-l NORTE, — Presidente=norte
Especifique la longitud de nueva línea deseada para el comando “l”
–posix
Deshabilite todas las extensiones GNU.
-r, –regexp-extensión
Use expresiones regulares extendidas en scripts.
-s, – separación
Trate los archivos como separados en lugar de como un único flujo largo continuo.
-tu, –sin búfer
Cargue una cantidad mínima de datos del archivo de entrada y vacíe el búfer de salida con más frecuencia
– ayuda
mostrar esta ayuda y salir
– Versión
información de la versión de salida y salir

que no -mi, – Rápido, -F, o – documento Se dan opciones, luego el primer argumento que no es una opción es el script sed para interpretar. Todos los argumentos restantes son los nombres de los archivos de entrada; si no se especifica ningún archivo de entrada, se lee la entrada estándar.

Resumen de comandos

Esta es solo una breve sinopsis sed para recordar a los que ya saben sedSe debe consultar otra documentación (por ejemplo, la documentación de texinfo) para obtener una descripción más completa.

dirección cero “comando”

: Etiqueta
Etiquetado como B y Tonelada Pedido. #Comentario
Los comentarios se extienden hasta la siguiente nueva línea (o -mi fragmento de guión). } { } El paréntesis de cierre del bloque.

Dirección cero o comando de una dirección

= imprime el número de línea actual. Una
texto
adicional texto, donde cada nueva línea incrustada está precedida por una barra invertida. Una generación
texto
insertar texto, donde cada nueva línea incrustada está precedida por una barra invertida. q [exit-code]
Renuncia ahora sed El script ya no procesa ninguna entrada y el espacio de patrón actual se imprimirá a menos que la impresión automática no esté deshabilitada. El parámetro del código de salida es una extensión GNU.preguntar [exit-code]
Renuncia ahora sed script sin procesar más entradas. Esta es una extensión GNU. r Nombre del archivo
agregar desde Nombre del archivo.R Nombre del archivo
Agregar una línea para leer Nombre del archivoCada invocación del comando lee una línea del archivo. Esta es una extensión GNU.

Aceptar comando para el rango de direcciones

{ Comienza un bloque de comandos (que termina en }). B Etiqueta
rama a Etiqueta; Si Etiqueta se omite, salta al final del script. C
texto
reemplazar las líneas seleccionadas con texto, donde cada nueva línea incrustada está precedida por una barra invertida. d Elimine el espacio del patrón. Comience el siguiente ciclo. D elimina la primera nueva línea incrustada en el espacio del patrón. Inicie el siguiente ciclo, pero omita la lectura de la entrada si todavía hay datos en el espacio del patrón. h H Copiar/añadir espacio de patrón para reservar espacio. g G copiará/añadirá el espacio de retención al espacio del patrón. l Enumere la línea actual en forma “visualmente inequívoca”. yo ancho
Enumere la línea actual en forma “visualmente inequívoca”, en ancho figura. Esta es una extensión GNU. n N Lee/agrega la siguiente línea de entrada al espacio del patrón. p imprime el espacio del patrón actual. P Imprime la primera nueva línea incrustada en el espacio del patrón actual. segundo/expresión regular/sustituir/ tratar de emparejar expresión regular para el espacio patrón.Si tiene éxito, reemplace la pieza coincidente con sustituir. Esta sustituir puede contener caracteres especiales & Citando la parte coincidente del espacio patrón, escape especial 1 a 9 para referirse a la correspondiente subexpresión coincidente expresión regulartonelada Etiqueta
Si se leyó as/// desde la última línea de entrada y el reemplazo se completó con éxito desde el último comando t o T, pase a Etiqueta; Si Etiqueta se omite, salta al final del script.Tonelada Etiqueta
Si se leyó la última línea de entrada y no se completó con éxito el reemplazo de s/// desde el último comando t o T, pase a Etiqueta; Si Etiqueta se omite, salta al final del script. Esta es una extensión GNU. w Nombre del archivo
escribir el espacio de esquema actual Nombre del archivo.W Nombre del archivo
escribe la primera línea del espacio del patrón actual Nombre del archivoEsta es una extensión GNU. x intercambia el contenido del espacio de espera y el espacio de patrón. Sí/fuente/destino/ Transliterar caracteres que aparecen en el espacio patrón fuente al personaje correspondiente destino.

habla a

lado Los comandos se pueden dar sin una dirección, en cuyo caso el comando se ejecutará para todas las líneas de entrada; con una dirección, en cuyo caso el comando se ejecutará solo para las líneas de entrada que coincidan con esa dirección; o con dos direcciones, en cuyo caso el El comando se ejecutará en todas las líneas de entrada que coincidan con el rango inclusivo de líneas que comienzan en la primera dirección y continúan hasta la segunda dirección.Tres cosas a tener en cuenta sobre los rangos de direcciones: la sintaxis es Dirección 1,dirección 2 (es decir, las direcciones están separadas por comas); esta línea Dirección 1 siempre se aceptarán coincidencias, incluso si dirección 2 selecciona la fila anterior; mientras que si dirección 2 es un expresión regular, no probará contra la siguiente línea Dirección 1 coincidir.

Después de la dirección (o rango de direcciones) y antes del comando, un ! Se puede insertar, lo que especifica que el comando solo debe ejecutarse si la dirección (o el rango de direcciones) no existe No Concurso.

Se admiten los siguientes tipos de direcciones:

número
coincide solo con la línea especificada número.
primero~paso
emparejar cada paso‘La primera línea que comienza con primeroPor ejemplo, “sed -n 1~2p” imprimirá todas las líneas impares en el flujo de entrada, y las direcciones 2~5 coincidirán cada quinta línea a partir de la segunda. primero puede ser cero; en este caso, sed como si fuera igual a paso(Esta es una extensión.) $ coincide con la última línea. /expresión regular/ coincide con las líneas que coinciden con la expresión regular expresión regular.Cexpresión regularC
Coincidencia de líneas que coincidan con una expresión regular expresión regular. Esta C Puede ser cualquier personaje.

ÑU sed También se admiten algunos formularios especiales de 2 direcciones:

0,dirección 2
desde el estado de “primera dirección coincidente” hasta dirección 2 ser encontrado. Esto es similar a 1,dirección 2, a menos que si dirección 2 coincide con la primera línea de 0 en la entrada,dirección 2 forma estará al final de su rango, y 1,dirección 2 todavía estará al comienzo de su alcance.Esto es sólo dirección 2 es una expresión regular.
Dirección 1,+norte
coincidirá Dirección 1 y norte las siguientes lineas Dirección 1.
Dirección 1,~norte
coincidirá Dirección 1 y las siguientes lineas Dirección 1 hasta la siguiente línea donde el número de línea de entrada es un múltiplo de norte.

Expresiones comunes

POSIX.2 BRE deberían son compatibles, pero no se deben completamente a problemas de rendimiento.Esta norte Las secuencias en expresiones regulares coinciden con líneas nuevas, por Una, ty otras secuencias.