El sistema operativo Linux utiliza comandos de terminal para trabajar con el sistema de archivos de un ordenador. El uso principal del comando Linux sed , que es la abreviatura de «editor de secuencias», es modificar cada línea de un archivo o secuencia reemplazando partes específicas de la línea. Realiza cambios básicos de texto en un archivo o entrada desde un pipeline.
Ejemplos de uso de Sed para realizar cambios en archivos de texto
Digamos que tienes un archivo llamado songs.txt que contiene estas líneas:
1, Justin Timberlake, Título 545, Precio $6.30
2, Taylor Swift, Título 723, Precio $7.90
3, Mick Jagger, Título 610, Precio $7.90
4, Lady Gaga, Título 118, Precio $6.30
5, Johnny Cash, Título 482, Precio $6.50
6, Elvis Presley, Título 335, Precio $6.30
7, John Lennon, Título 271, Precio $7.90
Desea modificar todas las apariciones de precio de 6,30 USD a 7,30 USD. Para ello, puede utilizar el comando sed de esta manera:
sed 's/6.30/7.30/' songs.txt> songs2.txt
Este código realiza el cambio y guarda el archivo modificado como songs2.txt. El nuevo archivo resultante contiene:
1, Justin Timberlake, Título 545, Precio $7.30
2, Taylor Swift, Título 723, Precio $7.90
3, Mick Jagger, Título 610, Precio $7.90
4, Lady Gaga, Título 118, Precio $7.30
5, Johnny Cash, Título 482, Precio $6.50
6, Elvis Presley, Título 335, Precio $7.30
7, John Lennon, Título 271, Precio $7.90
Si desea reemplazar todas las ocurrencias de «Dinero en efectivo» por «Papelera», también puede usar el comando sed de esta manera:
sed 's/Cash/Trash/' songs.txt> songs2.txt
El archivo songs2.txt modificado resultante contendría el siguiente texto:
1, Justin Timberlake, Título 545, Precio $7:30
2, Taylor Swift, Título 723, Precio $7.90
3, Mick Jagger, Título 610, Precio $7.90
4, Lady Gaga, Título 118, Precio $7:30
5, Johnny Trash, Título 482, Precio $6.50
6, Elvis Presley, Título 335, Precio $7:30
7, John Lennon, Título 271, Precio $7.90
Filtrado con el comando Sed
Sed también se utiliza frecuentemente para filtrar líneas en un archivo o secuencia. Por ejemplo, si sólo quiere ver las líneas que contienen «John», usará el siguiente comando sed:
sed -n '/John/p' songs.txt> johns.txt
El nuevo archivo johns.txt contendría las siguientes líneas:
5, Johnny Cash, Título 482, Precio $6.50
7, John Lennon, Título 271, Precio $7.90