¿Qué es SED en Linux y cómo se usa?

sed significa s tream ed itor y es un comando de uso común en Linux/Unix. El nombre proviene de un portmanteau de esas dos palabras. No es un editor de texto, aunque sí modifica el texto. En su lugar, sed recibe la entrada de texto como un «stream» y edita el stream de acuerdo con sus instrucciones.

En general, la gente usa sed como una versión de línea de comandos de find and replace. El comando principal del programa se utiliza para sustituir una cadena de caracteres por otra. Esto lo hace útil para ejecutar funciones de búsqueda y reemplazo en un lote de archivos, pero no es tan fácil de usar como algo de Notepad o Word. Verás que la sintaxis requiere un poco de tiempo para acostumbrarse, pero una vez que lo hayas bajado, verás lo increíblemente poderoso que puede ser este editor compacto.

Uso de sed para la sustitución

Para usar sed, tendrás que abrir una ventana Terminal. El comando se invoca con sed, pero escribir eso solo no hará nada. Necesita proporcionar uno de los comandos, así como algunos parámetros.

El parámetro más común es sustituto, o s.Un simple comando de sustitución de sedimentos tiene un aspecto parecido al siguiente:

sed ‘s/cat/dog/’

Ese comando ordenará a Sed que escanee el texto entrante y reemplace cada instancia de la cadena «cat» por «dog». Para demostrarlo, usaremos el comando de eco para darle algo con lo que trabajar.

echo catapulta | sed s/cat/dog/

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>.

¿Qué es SED en Linux y cómo se usa?


Hay tres partes principales en el comando sed. Primero, hay un ssed que inicia el programa. Luego está el swhich que inicia el comando de sustitución. La barra oblicua / es un separador. La cadena después de eso será la cadena que busca el sedante. La cadena después de la segunda barra serán los caracteres de reemplazo que sed escribe en la secuencia. La última barra cierra el comando. En conjunto, es ‘s/text-to-find/text-to-replace/’.

Note las comillas simples en ese ejemplo. Las comillas simples le permiten utilizar caracteres meta en su comando. Aunque las comillas no son esenciales para la mayoría de nuestros ejemplos, debería desarrollar el hábito de usar comillas para todos los comandos.

¿Qué hay de las cuerdas parciales? El comando anterior funcionará en cualquier apariencia de la cadena «cat», incluso si es parte de otra palabra. Por ejemplo, «catapulta» se convertirá en «dogapulta» como «catamarán» se convertirá en «dogamarán».

echo catapulta | sed ‘s/cat/dog/’>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>.

¿Qué es SED en Linux y cómo se usa?


Reemplazo global

En nuestro primer ejemplo, es posible que haya notado que sólo se reemplazó la primera instancia de la cadena coincidente. Como muchas utilidades de GNU, sed está basado en líneas. Como resultado, sólo funciona en el primer partido dentro de una línea. Si tiene varias coincidencias para su cadena de candidatos en la línea, sólo se cambiará la primera. Para hacer que sed funcione en cada ocurrencia de la cadena de destino, utilice la bandera g al final del comando:

sed ‘s/cat/dog/g’

Esto funcionaría como en el siguiente ejemplo:

echo catapultar catamarán | sed ‘s/cat/dog/g’>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>.

¿Qué es SED en Linux y cómo se usa?


Sin la bandera global, sólo se reemplazaría la primera instancia de «cat» en cada línea.

Configuración de archivos de entrada y salida

Por defecto, sed operará en la entrada estándar. Sin embargo, eso no es muy útil. Para ejecutar sed en un archivo, especifique el nombre del archivo al final del comando, así:

newfile.txt.

¿Qué es SED en Linux y cómo se usa?


Esto ejecutará sed en «oldfile.txt» y guardará la salida del comando en «newfile.txt». Si «newfile.txt» no existe, será creado por el comando. Si no especifica un archivo de salida, sed se hará eco del nuevo texto del archivo en la entrada estándar.

Si desea sobrescribir el contenido de un archivo, deberá utilizar el indicador-iflag. Esta bandera hace que las ediciones estén «en su lugar».

sed -i s/cat/dog oldfile.txt

Este comando sobrescribe inmediatamente el contenido del archivo de destino, lo que es ligeramente peligroso. Para estar seguro, puede crear una copia de seguridad in situ.

Para crear una copia de seguridad del archivo, coloque una extensión después de la -i. No necesita ser una extensión funcional: «.bu» o».bak» funcionan bien. Esto creará un archivo de copia de seguridad con una extensión.

sed -i.bak s/cat/dog oldfile.txt

Esto crea «oldfile.txt.bak», que contiene los datos de texto sin editar de la versión original de «oldfile.txt».

Coincidir con expresiones regulares

El verdadero poder de la sed se deriva de la combinación de expresiones regulares. Esto le permite establecer patrones de concordancia, en lugar de cadenas literales. Por ejemplo, podríamos usar algo como la siguiente cadena para repetir cualquier conjunto de uno o más números:

echo «123 abc» | sed ‘s/[0-9][0-9]&/&/’

¿Qué es SED en Linux y cómo se usa?


Aprendizaje adicional

sed es una utilidad extremadamente poderosa con una profundidad de poder similar a la de un lenguaje de scripting. Para obtener más información sobre las capacidades completas de sed, consulte La guía completa de sed de Bruce Barnett .

Fuente: este post proviene de Vida Tecno, donde puedes consultar el contenido original.
¿Vulnera este post tus derechos? Pincha aquí.
Creado:
¿Qué te ha parecido esta idea?

Esta idea proviene de:

Y estas son sus últimas ideas publicadas:

Etiquetas: Linux

Recomendamos

Relacionado

Linux

Grep es un pequeño programa de Unix para encontrar patrones coincidentes. Iniciado como un programa Unix, se puede encontrar tanto en Linux como en Mac y BSD. Puede leer casi cualquier texto, lo que significa que puede leer las entradas de otros comandos, o puede abrir y revisar los archivos directamente. Grep es increíblemente útil, especialmente para mirar a través de directorios desde la línea ...

Linux

Dos potentes características del shell de la línea de comandos de Linux son la redirección y las tuberías que permiten que la salida (o incluso la entrada) de un programa se envíe a un archivo o a otro programa. Es posible que ya haya utilizado estas funciones sin ser consciente de ello. Siempre que se ha utilizado el signo «>» en un comando o «|» entonces se ha utilizado la ...

Linux

Normalmente utilizamos el comando clear o pulsamos «Ctrl + L» para borrar la pantalla del terminal en Linux. Aunque funciona, en realidad la pantalla no está despejada – sólo la salida anterior se desplaza hacia arriba fuera del área visible. ¿Pero qué pasa si el requisito es realmente limpiar la pantalla del terminal? En este artículo discutiremos el comando reset que lo hace posi ...

Linux

Si ha visto nuestro artículo en usando el archivo hosts en Windows y está usando Linux en lugar de Windows, puede que se pregunte cómo hacer exactamente lo mismo en Linux. Bueno, estás de suerte. Estos son los pasos exactos para usar el archivo de hosts en Linux. En Linux y otros sistemas basados en Unix, incluyendo los BSDs y Mac OS X, se encuentra en «/etc/hosts», y funciona casi exact ...

Linux

Hay muchos comandos disponibles en los sistemas Linux. Hay algunos que usted usará varias veces al día, y hay otros que generalmente se reservan para casos de uso especial. Nohup es una de esas órdenes. No lo usarás todos los días, pero estarás agradecido de que esté a tu alrededor cuando lo necesites. ¿Qué es Nohup? Nohup es la abreviatura de «No Hangups». No es una orden que se ejecuta ...

Linux

Una de las responsabilidades centrales de la administración de Linux es la gestión de usuarios. Mediante el uso de la línea de comandos, la creación de usuarios puede realizarse de forma remota o programática. Una vez que haya creado un usuario, podrá agregarlo a los grupos o concederle privilegios ampliados. Además, usted puede mantener un registro de auditoría de lo que se ha hecho en su servido ...

Linux

Dentro de su sistema Linux o macOS, hay un archivo llamado «sudoers» que controla los niveles más profundos de su sistema de permisos. Permite o niega a los usuarios el acceso a los superusuarios y tiene algunas preferencias especiales para sudo. ¿Qué es el archivo Sudoers? El archivo sudoers es un archivo de texto que vive en «/etc/sudoers». Controla cómo funciona sudo en su m ...

Linux

Si tiene el hábito de almacenar todos sus archivos temporales en su escritorio (o en cualquier otra carpeta) y se olvidó de eliminarlos más tarde, se dará cuenta de que su equipo se ensucia fácilmente con toneladas de archivos para los que no tiene uso. Una vez que eso sucede, la limpieza del equipo se convierte en una tarea tediosa y en una tarea problemática. Esta es una manera rápida y fácil de ...

Linux

Si utiliza Linux, probablemente llegará el momento en que necesite saber más acerca de su red. Varias herramientas pueden ayudarle a hacer esto, y algunas son más complicadas que otras. El comando ss es algo en lo que puede confiar al estar instalado en muchos equipos, por lo que es muy útil saberlo. ¿Qué es el Comando ss? Aunque el nombre del comando de dos letras puede parecer arcano, en realida ...

Linux

Renombrar archivos no es una operación particularmente avanzada; siempre y cuando se haga en un pequeño número de archivos, por lo general no requiere herramientas especiales. Sin embargo, cuando hay toda una carpeta de fotos de las vacaciones del año pasado esperando ser renombradas, sería prudente considerar algunos trucos o aplicaciones para ahorrar tiempo. Hay dos enfoques generales para renom ...