Herramientas de usuario

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Ambos lados, revisión anteriorRevisión previa
Próxima revisión
Revisión previa
sed [2021/10/23 20:03] peronsed [2026/04/21 16:08] (actual) – editor externo 127.0.0.1
Línea 1: Línea 1:
 ====== sed ====== ====== sed ======
  
-**sed** puede considerarse como un editor de líneas extendido. Es un editor de cadenas de textoSe lo puede emplear para realizar transformaciones básicas de texto en una cadena de entrada (un fichero o entrada desde un [[caño]]). Si bien de alguna forma es similar a un editor, en el que permite ediciones guionadas (como [[ed]]), sed opera principalmente haciendo una única pasada de interpretación sobre la entrada/s.+**sed** es un [[editores de texto|editor de texto]] basado en //cadenas de caracteres//En esencia puede considerarse como una versión extendida del editor de líneas [[ed]]. 
  
-La capacidad de sed para filtrar texto en un caño es lo que lo distingue particularmente de otros tipo de [[editores de texto]].+A diferencia de este, permite editar el texto por medio de //guion de operaciones//, realizando generalmente una única pasada de interpretación sobre la entrada/s.
  
-[[Tutorial de sed]]+De esta manera, se lo puede emplear para realizar transformaciones de texto en una cadena de entrada (un fichero de texto o un cadena de entrada provista desde [[tutorial básico de la consola#caños|caño]]). La capacidad de sed para filtrar texto en un caño es lo que lo distingue particularmente de otros tipo de [[editores de texto]]. 
 + 
 +>Si eres muy expert@, podrás incluso recurrir a la edición en la línea o globalmente utilizando [[expresiones regulares]]. 
 + 
 +Existen 3 casos específicos en los que conviene utilizar sed: 
 + 
 +  - editar ficheros muy largos de editar interactivamente. 
 +  - editar ficheros de cualquier tamaño cuando la secuencia de comandos de edición es muy complicada para hacer el tipeado confortable en ambiente interactivo. 
 +  - usar múltiples funciones globales de edición eficientemente en un solo paso. 
 + 
 +====Comandos de sed ==== 
 + 
 +sed opera de manera similar a ed. Estos son los comandos básicos. 
 + 
 + 
 +| Caracter | Acción | 
 +| ''r'' |**carga** un fichero | 
 +| ''w'' |**escribe** a un archivo | 
 +| ''p'' |**imprime** el espacio patrón | 
 +| ''s'' |**sustituye** patrones | 
 +| ''c'' |**añade** texto | 
 +| ''d'' |**borra** texto | 
 +| ''i'' |**inserta** texto | 
 +| ''a'' |**añade** texto al espacio patrón | 
 +| ''l'' |**lista** el contenido del espacio patrón | 
 +| ''n'' |**añade** una nueva línea al espacio patrón | 
 +| ''b'' |**ramifica** a un rotulo, se emplea de forma similar a un goto | 
 + 
 +===Instrucciones de sed=== 
 + 
 +He aquí algunas instrucciones comunes de sed que forman comandos complejos. 
 + 
 +^Instrucción de sed^Resutado^ 
 +|<code bash>sed -i 's/Unix/GNU/g' ejemplo.txt</code> |Reemplaza toda instancia de ''Unix'' por ''GNU'' en ''ejemplo.txt''
 +|<code bash>sed -i.bak 's/Unix/GNU/g' ejemplo.txt</code> |Creando un fichero de respaldo ''ejemplo.txt.bak'' y luego reemplaza toda instancia de ''Unix'' por ''GNU'' en ''ejemplo.txt''. | 
 +|<code bash>sed 's/Susana/Moria/' ejemplo.txt</code> |Reemplaza sólo la primer instancia de ''Susana'' por ''Moria'' en ''ejemplo.txt''. | 
 +|<code bash>sed 's/Susana/Moria/g' ejemplo.txt</code> |Reemplaza todas las instancias de ''Susana'' por ''Moria'' en ''ejemplo.txt''. | 
 +|<code bash>sed '/Patrón antes de/i Esta línea' ejemplo.txt</code> |Inserta la cadena ''Patrón antes de'' previa a la cadena ''Esta línea''. | 
 +|<code bash>sed '/Patrón después/a Esta línea' ejemplo.txt</code> |Agrega la cadena ''Patrṕn después'' posterior a la cadena ''Esta línea''. | 
 +|<code bash>sed '/^$/d' ejemplo.txt</code> |Borra todas las líneas en blanco de ''ejemplo.txt''
 +|<code bash>sed '/^$/d' sample.txt > limpiado.txt</code> |Borra todas las líneas en blanco de ''ejemplo.txt'' y lo guarda en ''limpiado.txt''
 +|<code bash>sed '/Espacio en Blanco/c\Esta línea fue reemplazada' ejemplo.txt</code> |Busca cualquier línea con la cadena ''Espacio en Blanco'' (sensible a mayúsculas) y la reemplaza con la cadena ''Esta línea fue reemplazada''
 +|<code bash>sed -n '2,4p' ejemplo.txt</code> |Presenta desde la línea 2 a la 4 inclusive de ''ejemplo.txt''
 +|<code bash>sed '3d' ejemplo.txt</code> |Elimina exactamente la línea 3 ''ejemplo.txt''
 +|<code bash>sed -i 's/http:/https:/g' *.html</code> |Busca toda instancia de la cadena ''http:'' en todos los ficheros ''.html'' y las reemplaza con la cadena ''https:'', editando in situ (''-i'') | 
 +|<code bash>sed -i.bak 's/http:/https:/g' *.html</code> |Busca toda instancia de la cadena ''http:'' en todos los ficheros ''.html'' y las reemplaza con la cadena ''https:'', creando copias de respaldo ''.bak'' de los ficheros modificados | 
 +|<code bash>sed 's/^[ \t]*//;s/[ \t]*$//' ejemplo.txt</code> |Elimina espacios y tabuladores en blanco al comienzo y al final de cada línea del fichero ''ejemplo.txt''. | 
 + 
 +__**Ver también**__: [[Tutorial de sed]]

Este sitio web utiliza cookies para guardar datos esenciales de su actividad, como su autenticación. Al entrar acepta el uso de cookies.

Más información