Recursos para la comunidad
sed
sed
El comando sed
es muy útil para manipular entradas de texto ya sea a través de un archivo o la salida estandar de la consola de GNU/Linux
El uso básico de sed
es el siguiente:
$ echo "me gusta el mango" | sed 's/mango/pavo/'
me gusta el pavo
como vemos a traves del pipe (|) pasamos el texto del primer comando y lo modificamos con la siguiente estructura:
sed
seguido de una instrucción entre comillas dónde “s” indica sustitución.
A continuación los caracteres “/” se usan como separadores, pero cabe mencionar que se puede usar cualquier otro caracter.
Después del primer separador se escribe el patrón de texto que queremos cambiar y que será buscado y sustituido una vez en todas las lineas de un texto dato
Después del segundo separador se escribe la sustitución que puede ser cualquier o ningún caracter(es), si se deja vació este campo, se eliminará la primer aparición del patron en cada linea del texto.
Finalmente se cierra el comando con el caracter de separción y se cierran las comillas.
Si se desea que las sustituciones no se limiten a la primer aparición del patrón en cada línea, entonces se agrega la opción “g” al final del comando por ejemplo: sed 's/mango/pavo/g'
.
Por último podemos llevar a cabo la operación de sed
directamente en un archivo con la siguiente estructura sed 's/patron/sustitucion/' nombre_del_archivo
esto imprimirá en pantalla el resultado del comando, si se desea modificar el archivo directamente, se puede usar sed -i
y el resto del comando.
Este es un compendio de snippets de sed
que hemos encontrado útiles, por el momento no guardan ningún orden en particular:
Uso | Comando | Notas |
---|---|---|
Eliminar whitespaces (espacios, tabs) al inicio de un texto | sed 's/^\W*//' |
|
Sustituir repeticiones de un caracter por uno solo | sed 's/\W\W*/:/g' |
En este caso reemplaza apariciones únicas ó múltiples de caracteres en blanco por un solo “:” |
Eliminar las líneas en blanco de un texto | sed '/^$/d' |
|
Reemplazar espacios por tabulaciones | sed -e 's/ /\t/' |