comunidades

¿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í.
¿Qué te ha parecido esta idea?

Esta idea proviene de:

Y estas son sus últimas ideas publicadas:

Etiquetas: Linux

Recomendamos

Relacionado

Linux

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

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

Entendiendo las tuberías y la redirección para la línea de comandos de 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

¿Qué es Nohup y cómo se usa?

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

Gestión de los datos Exif en sus fotos desde la línea de comandos[Linux]

ImageMagick es una suite de herramientas para Linux que le permite manipular imágenes desde la línea de comandos. El comando «convert» le permite realizar conversiones y transformaciones de imágenes sin embargo, hay varias otras herramientas incluidas en la suite, algunas de las cuales le permiten trabajar con los datos Exif en fotos JPEG. Es probable que su distribución de Linux ya teng ...

Linux

Cómo administrar usuarios desde la línea de comandos en 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

Cómo borrar realmente la pantalla del terminal en 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

Entendiendo el Linux df y du Commands

Aunque es posible obtener información sobre el uso del disco desde los distintos escritorios Linux, aquellos que se sienten cómodos con la línea de comandos pueden obtener muchos más detalles usando los comandos df y du. Con estos dos comandos, no sólo puede descubrir detalles sobre el espacio libre en los sistemas de ficheros montados, sino que también puede ver la cantidad de espacio utilizado p ...

Linux

Hoja de trucos de los atajos de teclado de Vim

Este artículo forma parte de la serie Guía del usuario de VIM : La guía para principiantes para empezar a usar Vim Hoja de referencia de los atajos de teclado Vim 5 Vim Tips and Tricks for Experienced Users 3 Consejos y trucos útiles del editor VIM para usuarios avanzados El editor Vim es una herramienta basada en la línea de comandos que es una versión mejorada del venerable editor vi. A pesa ...

Linux

Cómo obtener notificaciones de escritorio desde la línea de comandos de Linux

¿No sería genial si pudieras obtener notificaciones emergentes cuando terminan esas largas tareas que se ejecutan desde la línea de comandos? Bueno, tú puedes. En realidad, crear notificaciones de escritorio desde la línea de comandos es muy sencillo con el comando notify-send. Puede usar notify-send en sus scripts o establecer que se ejecute siguiendo un comando largo que acaba de escribir en la ...

Linux

Cómo hacer las cosas en Linux con Zanshin

Muchos, muchos «productivityists» son seguidores de la metodología «Getting Things Done» de David Allen. Comúnmente llamado «GTD», pretende enseñar a sus usuarios un proceso mediante el cual pueden confiar en un conjunto de herramientas para manejar el «recuerdo» y la «organización» de su trabajo diario, dejando su cerebro libre para centrarse en l ...