Inicio > Procesamiento y búsqueda de texto > sed

sed: Editor de flujos de texto

sed (editor de flujos) es una potente utilidad de Unix para editar flujos de texto. Realiza transformaciones de texto, filtrado, eliminación, inserción y más utilizando expresiones regulares sobre la entrada que se pasa a través de archivos o tuberías. Está optimizado para la edición no interactiva y se utiliza ampliamente para el procesamiento automatizado de texto en scripts.

Descripción general

sed lee la entrada de flujo (archivo o entrada estándar) línea por línea, aplica el script (comando) especificado y luego envía el resultado a la salida estándar. Se utiliza principalmente para modificar el contenido de archivos de texto, buscar y reemplazar patrones específicos, y eliminar líneas.

Funciones principales

  • Potente coincidencia de patrones con expresiones regulares
  • Sustitución de texto
  • Eliminación de líneas
  • Inserción y adición de líneas
  • Modificación directa del contenido del archivo (opción -i)

Opciones principales

Las opciones principales del comando sed controlan la forma de especificar el script o el comportamiento de salida.

Control de script y comportamiento

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

Aprenda métodos de procesamiento de texto a través de varios ejemplos de uso de sed.

Sustituir una cadena específica

sed 's/old_text/new_text/g' filename.txt

Reemplaza todas las ocurrencias de 'old_text' por 'new_text' en el archivo. El flag 'g' sustituye todas las coincidencias en una línea.

Eliminar líneas que contienen un patrón específico

sed '/error/d' logfile.txt

Elimina todas las líneas que contienen la palabra 'error'.

Modificar el contenido del archivo in situ

sed -i.bak 's/DEBUG=true/DEBUG=false/g' config.txt

Cambia 'DEBUG=true' a 'DEBUG=false' en el archivo original 'config.txt' y crea un archivo de copia de seguridad con la extensión '.bak'.

Imprimir solo las primeras 5 líneas

sed -n '1,5p' data.txt

Imprime solo las primeras 5 líneas del archivo. Utiliza la opción '-n' y el comando '1,5p'.

Eliminar líneas en blanco

sed '/^$/d' document.txt

Elimina las líneas completamente en blanco del archivo.

Consejos y precauciones

Puntos a tener en cuenta y consejos para un uso eficiente de sed.

Malentendido sobre la opción -d de sed

En relación con la pista 'sed-d' proporcionada, `-d` no es una opción de línea de comandos válida para `sed`. El comando `sed` utiliza opciones como `-e`, `-f`, `-i`, `-n`, etc. Si ejecuta `sed -d`, `sed` podría interpretar `-d` como un nombre de archivo en lugar de una opción, o generar un error de opción desconocida.

Uso correcto del comando d

`d` es un comando utilizado dentro de un script de `sed` para eliminar líneas específicas. Por ejemplo, `sed '/pattern/d' filename` elimina todas las líneas que contienen 'pattern'. Este es un concepto completamente diferente de la opción de línea de comandos `-d`.

Ejemplo de uso del comando d

sed '/cadena_a_eliminar/d' input.txt > output.txt

Elimina las líneas que contienen 'cadena_a_eliminar' del archivo.

Uso de expresiones regulares

La potencia de sed radica en las expresiones regulares. Dominar varios metacaracteres (por ejemplo, `^`, `$`, `*`, `+`, `?`, `.` etc.) permite la coincidencia y sustitución de patrones complejos.

  • `^`: Inicio de línea
  • `$`: Fin de línea
  • `.`: Cualquier carácter único
  • `*`: El carácter anterior se repite cero o más veces
  • `s/old/new/g`: Sustituye todas las 'old' por 'new'
  • `/pattern/d`: Elimina líneas que contienen 'pattern'

Crear hábitos de copia de seguridad

Cuando modifique archivos directamente con la opción `-i`, siempre es recomendable especificar un sufijo de copia de seguridad para evitar la pérdida del archivo original (por ejemplo, `sed -i.bak ...`).



Comandos de la misma categoría