8 Edición de archivos con el editor de flujo sed
sed
(stream editor) es un editor de flujo, una potente herramienta de tratamiento de texto para el sistema operativo UNIX que acepta como entrada un archivo, lo lee y modifica línea a línea de acuerdo a un script. sed
permite manipular flujos de datos, como por ejemplo cortar líneas, buscar y reemplazar texto (con soporte de expresiones regulares ), entre otras cosas.
Algunas de las operaciones más primordiales de sed son el cambio de saltos de líneas, la sustitución de espacios por comas o tabulaciones, la deleción o adición de strings, etc.
La sintaxis general de la orden sed
es:
sed [-n] [-e'script'] [-f archivo] archivo1 archivo2 ...
donde:
Ejemplo de sustitución con sed
Sustituciones s///
de palabras: s/esto/aquello/
echo "Windows es lo máximo" | sed -e 's/Windows/Linux/'
En el ejemplo anterior, la modificación se hace solamente en la primer instancia que el comando encuentra. Esto no nos funciona si tenemos 400 repeticiones de Windows que queremos cambiar a Linux. Para que funcione debemos hacer un cambio de la siquiente manera:
echo "Windows es un sistema operativo ampliamente utilizado." > archivo.txt
cat archivo.txt
sed 's/Windows/Linux/g' archivo.txt
Esta letra g que agregamos, indica hacer las sustituciones de manera global, es decir en todas las ocurrencias o repeticiones dentro de un archivo.