sed - editor de flujo para filtrar y transformar texto
SINOPSIS
sed [-V] [--version] [--help] [-n] [--quiet] [--silent]
[-l N] [--line-length=N] [-u] [--unbuffered]
[-E] [-r] [--regexp-extended]
[-e script] [--expression=script]
[-f script-file] [--file=script-file]
[script-if-no-other-script]
[file...]
DESCRIPCIÓN
Sed es un editor de flujo. Un editor de flujo se utiliza para realizar transformaciones básicas de texto en una secuencia de entrada (un archivo o entrada desde una tubería). Aunque en algunos aspectos es similar a un editor que permite ediciones con scripts (como ed), sed funciona realizando solo una pasada sobre la(s) entrada(s) y, por lo tanto, es más eficiente. Pero es la capacidad de sed para filtrar texto en una tubería lo que lo distingue particularmente de otros tipos de editores.
-n, --quiet, --silent
suprime la impresión automática del espacio de patrones
--debug
anota la ejecución del programa
-e script, --expression=script
agrega el script a los comandos que se ejecutarán
-f script-file, --file=script-file
agrega el contenido de script-file a los comandos que se ejecutarán
--follow-symlinks
sigue los enlaces simbólicos al procesar in situ
-i[SUFFIX], --in-place[=SUFFIX]
edita archivos in situ (crea una copia de seguridad si se proporciona SUFFIX)
-l N, --line-length=N
especifica la longitud de ajuste de línea deseada para el comando `l`
--posix
deshabilita todas las extensiones GNU.
-E, -r, --regexp-extended
utiliza expresiones regulares extendidas en el script (para portabilidad, utiliza POSIX -E).
-s, --separate
considera los archivos como separados en lugar de como una única secuencia larga continua.
--sandbox
opera en modo de sandbox (deshabilita los comandos e/r/w).
-u, --unbuffered
carga cantidades mínimas de datos de los archivos de entrada y vacía los búferes de salida con más frecuencia
-z, --null-data
separa las líneas por caracteres NUL
--help
muestra esta ayuda y sale
--version
muestra la información de la versión y sale
Si no se proporciona ninguna opción -e, --expression, -f o --file, entonces el primer argumento que no sea una opción se toma como el script de sed para interpretar. Todos los argumentos restantes son los nombres de los archivos de entrada; si no se especifican archivos de entrada, se lee la entrada estándar.
Página de inicio de GNU sed: [https://www.gnu.org/software/sed/]. Ayuda general para el uso del software GNU: [https://www.gnu.org/gethelp/>. Envía informes de errores por correo electrónico a: <_].
Empaquetado por Debian. Copyright © 2022 Free Software Foundation, Inc. Licencia GPLv3+: GNU GPL versión 3 o posterior [https://gnu.org/licenses/gpl.html]. Este es un software libre: puedes cambiarlo y redistribuirlo. No hay garantía, en la medida permitida por la ley.
SINOPSIS DE LOS COMANDOS
Esta es solo una breve sinopsis de los comandos de sed para servir como recordatorio para aquellos que ya conocen sed; se debe consultar otra documentación (como el documento texinfo) para obtener descripciones más completas.
Comandos de dirección cero ``
: label
Etiqueta para los comandos b y t.
#comment
El comentario se extiende hasta el siguiente salto de línea (o el final de un fragmento de script -e).
}
El corchete de cierre de un bloque { }.
Comandos de dirección cero o uno
=
Imprime el número de línea actual.
a \
text Agrega texto, en el que cada salto de línea incrustado va precedido de una barra invertida.
i \
text Inserta texto, en el que cada salto de línea incrustado va precedido de una barra invertida.
q [exit-code]
Sale inmediatamente del script de sed sin procesar más entrada, excepto que si la impresión automática no está deshabilitada, el espacio de patrones actual se imprimirá. El argumento del código de salida es una extensión GNU.
Q [exit-code]
Sale inmediatamente del script de sed sin procesar más entrada. Esta es una extensión GNU.
r filename
Agrega texto leído de filename.
R filename
Agrega una línea leída de filename. Cada invocación del comando lee una línea del archivo. Esta es una extensión GNU.
Comandos que aceptan rangos de direcciones
{
Comienza un bloque de comandos (termina con un }).
b label
Rama a label; si se omite label, rama al final del script.
c \
text Reemplaza las líneas seleccionadas con texto, en el que cada salto de línea incrustado va precedido de una barra invertida.
d
Elimina el espacio de patrones. Inicia el siguiente ciclo.
D
Si el espacio de patrones no contiene un salto de línea, inicia un nuevo ciclo normal como si se hubiera emitido el comando d. De lo contrario, elimina el texto en el espacio de patrones hasta el primer salto de línea y reinicia el ciclo con el espacio de patrones resultante, sin leer una nueva línea de entrada.
h H
Copia/adjunta el espacio de patrones al espacio de retención.
g G
Copia/adjunta el espacio de retención al espacio de patrones.
l
Enumera la línea actual en una forma "visualmente inequívoca".
l width
Enumera la línea actual en una forma "visualmente inequívoca", dividiéndola en caracteres de ancho. Esta es una extensión GNU.
n N
Lee/adjunta la siguiente línea de entrada al espacio de patrones.
p
Imprime el espacio de patrones actual.
P
Imprime hasta el primer salto de línea incrustado del espacio de patrones actual.
s/regexp/replacement/
Intenta hacer coincidir regexp con el espacio de patrones. Si tiene éxito, reemplaza esa porción que coincidió con replacement. El replacement puede contener el carácter especial & para referirse a esa porción del espacio de patrones que coincidió y los caracteres de escape especiales \1 a \9 para referirse a las subexpresiones coincidentes correspondientes en regexp.
t label
Si una s/// ha realizado una sustitución exitosa desde la última línea de entrada que se leyó y desde el último comando t o T, entonces ramifica a label; si se omite label, ramifica al final del script.
T label
Si ninguna s/// ha realizado una sustitución exitosa desde la última línea de entrada que se leyó y desde el último comando t o T, entonces ramifica a label; si se omite label, ramifica al final del script. Esta es una extensión GNU.
w filename
Escribe el espacio de patrones actual en filename.
W filename
Escribe la primera línea del espacio de patrones actual en filename. Esta es una extensión GNU.
x
Intercambia el contenido de los espacios de retención y de patrones.
y/source/dest/
Transliterar los caracteres en el espacio de patrones que aparecen en source al carácter correspondiente en dest.
Los comandos sed pueden utilizarse sin direcciones, 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 comando se ejecutará para todas las líneas de entrada que coincidan con el rango inclusivo de líneas que comienza con la primera dirección y continúa hasta la segunda dirección. Hay tres cosas que hay que tener en cuenta sobre los rangos de direcciones: la sintaxis es addr1,addr2 (es decir, las direcciones están separadas por una coma); la línea con la que addr1 coincidió siempre se aceptará, incluso si addr2 selecciona una línea anterior; y si addr2 es una expresión regular, no se probará en la línea con la que addr1 coincidió.
Después de la dirección (o rango de direcciones), y antes del comando, se puede insertar un !, que especifica que el comando solo se ejecutará si la dirección (o rango de direcciones) no coincide.
Los siguientes tipos de direcciones son compatibles:
número Coincide solo con el número de línea especificado (que se incrementa acumulativamente en todos los archivos, a menos que se especifique la opción -s en la línea de comandos).
first~step
Coincide con cada línea step'ésima comenzando con la línea first. Por ejemplo, ``sed -n 1~2p'' imprimirá todas las líneas impares de la entrada, y la dirección 2~5 coincidirá con cada quinta línea, comenzando con la segunda. first puede ser cero; en este caso, sed opera como si fuera igual a step. (Esta es una extensión).
$ Coincide con la última línea.
/regexp/
Coincide con las líneas que coinciden con la expresión regular regexp. La coincidencia se realiza en el espacio de patrones actual, que se puede modificar con comandos como ``s///''.
\cregexpc
Coincide con las líneas que coinciden con la expresión regular regexp. La c puede ser cualquier carácter.
GNU sed también admite algunas formas especiales de dirección de 2 elementos:
0addr2
Comienza en el estado "primera dirección coincidente" hasta que se encuentre addr2. Esto es similar a 1addr2, excepto que si addr2 coincide con la primera línea de entrada, la forma 0,addr2 estará al final de su rango, mientras que la forma 1,addr2 aún estará al principio de su rango. Esto solo funciona cuando addr2 es una expresión regular.
addr1,+N
Coincidirá con addr1 y las N líneas siguientes a addr1.
addr1,~N
Coincidirá con addr1 y las líneas siguientes a addr1 hasta la siguiente línea cuyo número de línea de entrada sea un múltiplo de N.
EXPRESIONES REGULARES
Se deben admitir las BRE de POSIX.2, pero no se admiten completamente debido a problemas de rendimiento. La secuencia \n en una expresión regular coincide con el carácter de nueva línea, y lo mismo ocurre con \a, \t y otras secuencias. La opción -E cambia al uso de expresiones regulares extendidas; ha sido compatible con GNU sed durante años y ahora está incluida en POSIX.
ERRORES
Envíe informes de errores por correo electrónico a _. Además, incluya la salida de ``sed --version'' en el cuerpo de su informe, si es posible.
AUTOR
Escrito por Jay Fenlason, Tom Lord, Ken Pizzini, Paolo Bonzini, Jim Meyering y Assaf Gordon.
Este programa sed se ha compilado con soporte para SELinux. SELinux está desactivado en este sistema.
Página de inicio de GNU sed: [https://www.gnu.org/software/sed/]. Ayuda general para usar el software GNU: [https://www.gnu.org/gethelp/>. Envíe informes de errores por correo electrónico a: <_].
VER TAMBIÉN
awk(1), ed(1), grep(1), tr(1), perlre(1), sed.info, cualquiera de los diversos libros sobre sed, las preguntas frecuentes de sed (http://sed.sf.net/grabbag/tutorials/sedfaq.txt), http://sed.sf.net/grabbag/.
La documentación completa de sed se mantiene como un manual de Texinfo. Si los programas info y sed están instalados correctamente en su sitio, el comando
info sed
debería darle acceso al manual completo.