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 [2023/04/08 17:35] peronsed [2026/04/21 16:08] (actual) – editor externo 127.0.0.1
Línea 1: Línea 1:
 ====== sed ====== ====== sed ======
  
-**sed** es un editor de cadenas de texto. Se lo puede emplear para realizar transformaciones básicas de texto en una cadena de entrada (un fichero o entrada desde un [[tutorial basico 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]].+**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]]. 
  
-En esencia puede considerarse como una versión extendida del editor de líneas [[ed]]. Al igual que este permite ediciones guionadas (como [[ed]])aunque sed opera principalmente haciendo una única pasada de interpretación sobre la entrada/s.+A diferencia de estepermite editar el texto por medio de //guion de operaciones//realizando generalmente una única pasada de interpretación sobre la entrada/s.
  
-Asimismosi eres muy expert@, podrás incluso recurrir a la edición en la línea o globalmente utilizando [[expresiones regulares]].+De esta manerase 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]] __**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