# Comando SED de Linux: Usos y Ejemplos

El **comando SED de Linux** es un fuerte instrumento que contribuye a desarrollar una tarea que puede tener diversas finalidades, como lo es analizar y transformar texto. Actualmente, SED se ejecuta en los sistemas operativos más conocidos.

La sintaxis y varios atributos útiles de SED provienen principalmente del editor ed. El mecanismo en sí mismo incorpora flujos de entrada estándar, así como de archivos de texto. La sintaxis basada en script de SED tiene una particularidad: puede ser un poco complicada al comienzo. No obstante, muchas tareas difíciles se pueden solucionar con unas pocas líneas de *comandos SED*.

### Instalación de SED

En la distribución basada en Linux, SED viene instalado por defecto. Recordá, antes de iniciar, que tenés que acceder a tu VPS con SSH. El comando which se puede utilizar para corroborar si el sistema tiene instalado SED o no. En el sistema GNU/Linux Debian es posible instalar el comando SED utilizando el administrador de paquetes apt como te mostramos a continuación:

`[usuario]: ~$ sudo apt-get install sed`

Para garantizar que el comando SED se haya instalado correctamente, podés utilizar el siguiente comando:

`[usuario]: ~$ sed --versión`

El comando devolverá el siguiente resultado:

`sed (GNU sed)` \
`4.2. Copyright (C) 2012 Free Software Foundation, Inc.` \
`License GPLv3+: GNU GPL version 3 or later`` `**`<`**[`http://gnu.org/licenses/gpl.html`](http://gnu.org/licenses/gpl.html)**`>`**`.` \
`This is free software: you are free to change and redistribute it.` \
`There is NO WARRANTY, to the extent permitted by law.`

`Written by Jay Fenlason, Tom Lord, Ken Pizzini, and Paolo Bonzini.` \
`GNU sed home page:`` `**`<`**[`http://www.gnu.org/software/sed/`](http://www.gnu.org/software/sed/)**`>`**`.` \
`General help using GNU software:`` `**`<`**[`http://www.gnu.org/gethelp/`](http://www.gnu.org/gethelp/)**`>`**`.` \
`E-mail bug reports to:`` `**`<`**[`bug-sed@gnu.org`](mailto:bug-sed@gnu.org)**`>`**

### Flujo de trabajo de SED

El flujo de trabajo básico de SED se reduce a las siguientes funciones: Leer, Ejecutar y Mostrar.

El comando de lectura registra el valor de entrada y lo almacena en un búfer de patrón. La parte de ejecución se encarga de ejecutar secuencialmente el comando en un archivo. Luego de la ejecución, muestra la secuencia de salida. El buffer de patrón se libera a medida que el contenido se deja ver en la interfaz. El proceso de comando de lectura, ejecución y visualización se reitera hasta el final del archivo.

### Diferentes ejemplos de uso de SED

Sintéticamente, la función de SED es leer un archivo y generar un texto como resultado. Para crear el archivo de texto, utiliza el editor vi.

`[user]: ~$ vi text.txtPrograms must be written for people to read, and only incidentally for machines to execute.” ― Harold Abelson, Structure and Interpretation of Computer Programs`&#x20;

El comando para leer un archivo de texto es el que figura a continuación: \
`[user]: ~$ sed ‘’ text.txtPrograms must be written for people to read, and only incidentally for machines to execute.” ― Harold Abelson, Structure and Interpretation of Computer Programs`&#x20;

El comando toma la entrada del archivo «text.txt«. Previo a cargar el archivo de entrada, tenés que escribir un argumento de línea de comando entre el par de comillas simples. De esta manera «le dice» a la línea de comando que ejecute SED.

SED lee el archivo de entrada «text.txt» y almacena los datos en un búfer de patrones. Posteriormente, la operación se llevará a cabo.

Por otro lado, podés escribir un argumento vacío para que no se haga ninguna operación. SED muestra los datos almacenados como salida estándar y vacía su búfer de patrones.

`[user]: ~$ sed ‘’Programs must be written for people to read, and only incidentally for machines to execute.” ― Harold Abelson, Structure and Interpretation of Computer ProgramsPrograms must be written for people to read, and only incidentally for machines to execute.” ― Harold Abelson, Structure and Interpretation of Computer Programs`&#x20;

El comando ‘’ de SED toma entradas del teclado. Se muestran en la primera y segunda línea. Muestra los datos almacenados en el búfer de patrones. Para cerrar la sesión SED, tenés que usar la entrada de teclado CTRL+D.

### Comandos básicos de SED&#x20;

#### Cómo aprender los usos básicos del comando SED de Linux:

#### Comando eliminar&#x20;

Para ejecutar el comando eliminar, utilizá d junto con un archivo entre comillas. El comando eliminará la primera línea en el archivo text.txt:

`[user]: ~$ sed ‘1d’ text.txt`

#### Comando de escritura&#x20;

Para ejecutar el comando de escritura, escribí w, el número de línea y el archivo, entre comillas. El siguiente comando lee la segunda línea y la escribe en el archivo text2.txt:\
\
`[user]: $ sed '22 w text2.txt' text.txt`\
`[user]: ~$ cat text2.txt` \
`Harold Abelson, Structure and Interpretation of Computer Programs`

#### Sumar una palabra a un archivo

Utilizar la palabra clave y un número de línea entre comillas. Luego de cerrar las comillas, suministra la fuente adjunta. El siguiente comando muestra la segunda línea del archivo text.txt.

`[user]: ~$ sed '2 a The Append example' text.txt[user]: ~$ cat text.txtPrograms must be written for people to read, and only incidentally for machines to execute.” ― Harold Abelson, Structure and Interpretation of Computer ProgramsThe Append example'`

#### Comando de lectura

Utilizá r y escribí la ubicación del archivo entre comillas. El siguiente comando leerá la entrada de un archivo de texto y la sumará después de la tercera línea en el archivo text2.txt.

`[user]: ~$ sed '3 r text.txt' text2.txt` \
`[user]: ~$ cat text2.txt`

`Programs must be written for people to read, and only incidentally for machines to execute.” ― Harold Abelson, Structure and Interpretation of Computer Programs` \
\
`The Append example'` \
\
`Programs must be written for people to read, and only incidentally for machines to execute.” ― Harold Abelson, Structure and Interpretation of Computer Programs`


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://ayuda.latincloud.com/cloud-vps/linux/comando-sed-de-linux-usos-y-ejemplos.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
