La edición de archivos de texto y la salida de la terminal es un trabajo diario para quienes administran máquinas Linux. Las utilidades de línea de comandos como sed permiten al usuario modificar y cambiar el contenido de un archivo de texto directamente desde la ventana del terminal.

En este artículo, discutiremos el comando sed en detalle, junto con algunos ejemplos esenciales que demuestran el poder de la utilidad sed en Linux.

¿Qué es el comando sed?

El comando sed, que es un acrónimo de Editor de transmisiones, es una herramienta de línea de comandos que permite a los usuarios de Linux realizar operaciones basadas en texto en archivos y salidas de terminal. Con sed, los usuarios pueden encontrar y reemplazar palabras específicas en un texto, mostrar una determinada sección de la salida y editar archivos de texto sin abrirlos.

Las tres operaciones básicas que admite el comando sed son:

  1. Inserción
  2. Supresión
  3. Sustitución (buscar y reemplazar)

Los usuarios avanzados también pueden implementar expresiones regulares con el comando sed para editar secuencias de texto de manera más eficiente.

instagram viewer

La sintaxis básica del comando es:

sed [opciones] [patrón] [ruta de archivo]

...dónde opciones son las diversas funcionalidades del comando, patrón es la expresión regular o la secuencia de comandos que desea hacer coincidir, y ruta de archivo es la ruta al archivo de texto que contiene el texto.

10 ejemplos del comando sed de Linux

Si planea convertirse en un usuario habitual de Linux, saber cómo editar archivos, buscar y reemplazar palabras específicas y filtrar la salida del terminal puede serle útil. Esta sección cubre algunos ejemplos del comando sed que definitivamente lo convertirá en un usuario avanzado de Linux.

Usaremos el siguiente archivo de texto para una demostración en la publicación.

Este es un archivo de texto de demostración.
Es un archivo asombroso que nos ayudará a todos.
El comando sed también es ideal para la edición de secuencias.
¿Quiere aprender a usar el comando?
Esta es otra línea del archivo.
Esta es la tercera línea general del archivo.
Este archivo se denomina archivo de texto.
Esto es una manzana.
Esta es una naranja.

1. Ver un rango de líneas

Los comandos de Linux como head y tail generan la primera o las últimas diez líneas de un archivo de texto. Pero, ¿qué sucede si desea obtener el contenido entre dos líneas específicas en un archivo? En tales situaciones, el comando sed puede resultar útil.

Para generar el contenido entre las líneas 3 y 5 del archivo textfile.txt:

sed -n '3,5p' archivo de texto.txt

La -norte flag evita que sed muestre el espacio del patrón al final de cada ciclo. También puede utilizar el --tranquilo y --silencio opciones en lugar de -norte. La pag el argumento representa impresión y se utiliza para mostrar las líneas coincidentes al usuario.

La ejecución del comando mencionado anteriormente en el archivo de ejemplo produce la siguiente salida.

El comando sed también es ideal para la edición de secuencias.
¿Quiere aprender a usar el comando?
Esta es otra línea del archivo.

Para generar todo el contenido del archivo excepto el rango especificado, utilice el D bandera en lugar de pag en el comando:

sed '3,5d' archivo de texto.txt

La D flag elimina las cadenas coincidentes de la salida y muestra el resto del contenido.

Este es un archivo de texto de demostración.
Es un archivo asombroso que nos ayudará a todos.
Esta es la tercera línea general del archivo.
Este archivo se denomina archivo de texto.
Esto es una manzana.
Esta es una naranja.

2. Mostrar líneas no consecutivas

Para imprimir líneas no consecutivas entre varios rangos en el archivo:

sed -n -e '1,2p' -e '5,6p' archivo de texto.txt

Producción:

Este es un archivo de texto de demostración.
Es un archivo asombroso que nos ayudará a todos.
Esta es otra línea del archivo.
Esta es la tercera línea general del archivo.

La -mi bandera ayuda en ejecutando múltiples acciones usando un solo comando.

3. Insertar espacio entre líneas

Si por alguna razón desea insertar líneas vacías entre cada línea en un archivo de texto, use el GRAMO argumento con el comando sed predeterminado.

sed G textfile.txt

Para insertar varias líneas vacías en la salida, pase varias GRAMO argumentos separados por el punto y coma (;) personaje.

sed 'G; G 'archivo de texto.txt

4. Reemplazar una palabra en un archivo de texto

Si desea reemplazar cada aparición de una palabra específica con alguna otra palabra, use la s y gramo argumentos con el comando. La sintaxis básica para sustituir palabras usando el comando sed es:

sed s / palabra original / palabra de reemplazo / g nombre de archivo

Usando la sintaxis mencionada anteriormente, puede reemplazar la palabra increíble con súper en el archivo textfile.txt:

sed s / amazing / super / g textfile.txt

La s argumento denota sustitución y el gramo El comando se usa para reemplazar el contenido coincidente con el contenido de reemplazo especificado.

Para reemplazar la segunda aparición de la palabra con sed, pase un número al gramo argumento. En este caso:

sed s / amazing / super / g2 textfile.txt

Si desea ignorar las mayúsculas y minúsculas al sustituir palabras, utilice soldado americano en vez de gramo, dónde I representa ignorar caso.

sed s / Amazing / super / gi textfile.txt

Relacionados: ¿Usando Vi? Aquí se explica cómo abrir un archivo, luego guardarlo y salir

5. Sustituir palabras dentro de un rango

También puede sustituir palabras dentro de un rango específico.

sed '2,5s / amazing / super / g' textfile.txt

6. Realice varias sustituciones a la vez

Si desea realizar dos o más sustituciones a la vez, simplemente separe los comandos con el punto y coma (;) personaje.

sed 's / amazing / super / g; s / comando / utilidad / gi 'textfile.txt

El sistema mostrará la siguiente salida.

Este es un archivo de texto de demostración.
Es un súper archivo que nos ayudará a todos.
La utilidad sed también es excelente para la edición de secuencias.
¿Quiere aprender a utilizar la utilidad?
Esta es otra línea del archivo.
Esta es la tercera línea general del archivo.
Este archivo se denomina archivo de texto.
Esto es una manzana.
Esta es una naranja.

7. Reemplazar palabras solo si se encuentra una coincidencia

También puede usar el comando sed para reemplazar una palabra solo si se encuentra una coincidencia determinada en la línea. Por ejemplo, para reemplazar la palabra a con un si la palabra naranja está presente en la línea:

sed -e '/ orange / s / a / an / g' archivo de texto.txt

La emisión del comando mencionado anteriormente dará como resultado:

Este es un archivo de texto de demostración.
Es un súper archivo que nos ayudará a todos.
La utilidad sed también es excelente para la edición de secuencias.
¿Quiere aprender a utilizar la utilidad?
Esta es otra línea del archivo.
Esta es la tercera línea general del archivo.
Este archivo se denomina archivo de texto.
Esto es una manzana.
Esta es una naranja.

Tenga en cuenta que la palabra En la linea Esto es una manzana no fue reemplazado porque el sistema no encontró la palabra naranja en eso.

8. Sustituir palabras usando expresiones regulares

Para aquellos que saben cómo usar expresiones regulares, realizar operaciones en cadenas usando el comando sed se vuelve mucho más fácil. Puede implementar expresiones regulares para mejorar la potencia del comando.

Para reemplazar todas las apariciones de la palabra Increíble o increíble con súper:

sed -e 's / [Aa] mazing / super / g' textfile.txt

De manera similar, también puede usar expresiones regulares avanzadas para ejecutar operaciones específicas usando el comando sed.

9. Canalizar sed con otros comandos

También puede encadenar sed con otros comandos de Linux. Por ejemplo, puede canalizar el lspci comando con sed para agregar espacios vacíos entre líneas en la salida.

lspci | sed G

Para reemplazar palabras específicas en la salida del demostración de la ruta ip mando:

demostración de la ruta ip | sed s / src / source / g

El comando antes mencionado sustituye a la palabra fuente en lugar de la palabra original src.

Relacionados: Cómo utilizar el comando Buscar para buscar archivos en Linux

10. Edite y haga una copia de seguridad del archivo original

Cuando trabaja con archivos del sistema, es importante hacer una copia de seguridad del archivo original mientras realiza cambios. Esto le ayudará a revertir los cambios en caso de que algo se rompa.

Para hacer una copia de seguridad del archivo original usando sed, use el -I bandera en el comando.

sed -i'.backup '' s / amazing / super / g 'archivo de texto.txt

Se creará un nuevo archivo con el nombre textfile.txt.backup. Puede comprobar que los dos archivos son diferentes utilizando el diff mando.

diff textfile.txt textfile.txt.backup

Editando cadenas en Linux con sed

A veces, mientras trabaja con archivos de texto en la terminal, formatear y editar la salida para una mejor legibilidad se convierte en una necesidad. Sed y awk son utilidades de línea de comandos en Linux que permiten al usuario trabajar de manera eficiente con archivos de texto dividiendo los datos en líneas separadas.

Muchos usuarios tienen dificultades para memorizar los argumentos y las banderas del comando sed, ya que hay muchos de ellos disponibles para usar. Saber cómo obtener manuales de línea de comandos para cualquier comando de Linux lo ayudará a salir fácilmente de tales situaciones.

Correo electrónico
7 formas de obtener ayuda de la línea de comandos en Linux

Todos los comandos esenciales para aprender sobre los comandos de Linux desde la línea de comandos

Leer siguiente

Temas relacionados
  • Linux
  • Editor de texto
  • Terminal
  • Símbolo del sistema
Sobre el Autor
Sharma profundo (36 Artículos publicados)

Deepesh es el editor junior para Linux en MUO. Ha estado escribiendo contenido informativo en Internet durante más de 3 años. En su tiempo libre le gusta escribir, escuchar música y tocar la guitarra.

Más de Deepesh Sharma

Suscríbete a nuestro boletín

¡Únase a nuestro boletín de noticias para obtener consejos técnicos, reseñas, libros electrónicos gratuitos y ofertas exclusivas!

Un paso más…!

Confirme su dirección de correo electrónico en el correo electrónico que le acabamos de enviar.

.