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.

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Como no hay un mensaje de error específico ni una descripción del resultado esperado, es difícil determinar el problema exacto con la función. Sin embargo, basándose en el resultado proporcionado, un posible problema podría estar en el uso del comando tr.

    El comando tr se utiliza para eliminar caracteres del flujo de entrada. En este script, se utiliza para eliminar comillas dobles de la salida de awk. Sin embargo, si las comillas dobles se eliminan antes de procesar la salida, podría causar resultados inesperados. Por ejemplo, si un valor de campo contiene un espacio, se concatenará con el siguiente campo.

    Para solucionar este problema, una solución podría ser modificar el comando awk para incluir comillas dobles en la salida y luego eliminarlas utilizando tr. Aquí se presenta una versión actualizada de la función jsonValue:

    function jsonValue() {
        key=$1
        num=$2
        awk -F"[,:]\"" '{for(i=1;i<=NF;i++){if($i~/\"'$key'\"/){print $(i+1)}}}' <<< "$json" | tr -d '\"' | sed -n ${num}p
    }
    

    En esta versión, las comillas dobles se incluyen en el separador de campo del comando awk, para que la salida se divida correctamente. Luego, se utiliza el comando tr para eliminar las comillas dobles después de que se ejecute el comando awk.

Comments are closed.