es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Bash: Extraer el valor de una variable de una cadena.

Necesito extraer el valor de una variable “error” de un archivo de registro. Aquí hay una línea de muestra:

ADVERTENCIA (Recuperación periódica) IJ000906: error=15 comprobar server.log

Necesitaría capturar el valor de “error”. Buscando en respuestas similares, he llegado a esto:

echo “ADVERTENCIA (Recuperación periódica) IJ000906: error=15 comprobar server.log” | grep -P ‘\d+ (error=?)’ -o

Sin embargo, no produce ningún valor. ¿Puede recomendar una solución funcional para este caso?

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Sí, una solución funcional para este caso sería:

    grep -Po 'error=\K\d+' archivo_de_log
    

    Explicación:

    • grep – comando para buscar un patrón en un archivo
    • -Po – opciones para mostrar solo el patrón coincidente y utilizar expresiones regulares compatibles con Perl (PCRE)
    • 'error=\K\d+' – patrón PCRE que coincide con error= y luego lo descarta usando \K, y captura uno o más dígitos \d+
    • archivo_de_log – el nombre o la ruta del archivo de registro en el que buscar

    Este comando solo mostrará el valor numérico de error encontrado en el archivo de registro.

Comments are closed.