Introducción a sed
`sed` lee línea por línea del flujo de entrada, procesándolas según las reglas (script) especificadas y enviando los resultados a la salida estándar. Por defecto, el archivo original no se modifica, y para guardar los cambios en un archivo, debes utilizar redireccionamiento (`>`) o la opción `-i`.
Funciones principales de sed
`sed` se utiliza principalmente para los siguientes propósitos:
Principales áreas de uso
- Reemplazo de texto: Sustituye cadenas específicas dentro de archivos por otras. (Uso más común)
- Eliminar/Agregar líneas: Elimina líneas que contienen patrones específicos o inserta nuevas líneas en ubicaciones específicas.
- Coincidencia de patrones y salida: Imprime solo las líneas que coinciden con un patrón específico o procesa solo un rango de líneas.
- Cambio de formato de archivo: Convierte el formato de archivos de texto o reorganiza datos.
- Automatización de scripts: Desempeña un papel clave en scripts de shell que procesan masivamente archivos de texto.
Estructura básica de sed
La estructura básica del comando `sed` es `sed [OPTIONS] 'script' [INPUT_FILE...]`. Aquí, 'script' tiene la forma de `[dirección]comando[argumento]`, siendo el comando más importante `s` (sustituir).
Opciones principales del comando sed
`sed` ofrece diversas opciones que permiten un procesamiento flexible de texto, controlando el modo de entrada, especificando scripts y controlando la salida.
1. Opciones de procesamiento de scripts y archivos
2. Flags del comando de sustitución (s)
3. Otros comandos útiles
Comando generado:
Combina los comandos.
Descripción:
`sed` Ejecutando el comando.
Combina las opciones anteriores para ejecutar virtualmente los comandos junto con la IA.
Ejemplos de uso
A través de diversos ejemplos del comando `sed`, aprende cómo buscar, reemplazar y eliminar contenido de archivos de texto de manera efectiva.
Reemplazar todos los 'old' por 'new' en un archivo
sed 's/old/new/g' example.txt
Cambia todas las instancias de la palabra 'old' por 'new' en el archivo `example.txt` y muestra el resultado en la salida estándar.
Modificar directamente el archivo original y reemplazar cadenas
sed -i.bak 's/DEBUG=true/DEBUG=false/' config.conf
Cambia 'DEBUG=true' por 'DEBUG=false' directamente en el archivo `config.conf` y crea un respaldo del archivo original (`.bak`).
Eliminar una línea en un número de línea específico
sed '5d' log.txt
Elimina la quinta línea del archivo `log.txt` y muestra el resultado.
Eliminar líneas en un rango
sed '10,20d' document.txt
Elimina el contenido desde la línea 10 hasta la línea 20 en el archivo `document.txt` y muestra el resultado.
Eliminar líneas con un patrón específico
sed '/WARNING/d' errors.log
Elimina todas las líneas que contengan la palabra 'WARNING' en el archivo `errors.log` y muestra el resultado.
Insertar una línea de encabezado en el contenido de un archivo
sed '1i\Nombre,Edad,Ciudad' data.csv
Inserta una nueva línea de encabezado sobre la primera línea del archivo `data.csv`.
Eliminar líneas vacías
sed '/^$/d' text.txt
Elimina todas las líneas vacías en el archivo `text.txt`. `^$` es una expresión regular que representa líneas vacías.