¿Cómo eliminar comillas dobles en la salida jq para analizar archivos json en bash?
Estoy usando jq para analizar un archivo JSON como se muestra aquí . Sin embargo, los resultados de los valores de cadena contienen "comillas dobles" como se esperaba, como se muestra a continuación:
$ cat json.txt | jq '.name'
"Google"
¿Cómo puedo canalizar esto a otro comando para eliminar ""? entonces lo entiendo
$ cat json.txt | jq '.name' | some_other_command
Google
¿ Qué some_other_command
puedo usar?
Aceptado
Utilice la opción -r
(o --raw-output
) para emitir cadenas sin formato como salida:
jq -r '.name' <json.txt
Entonces, para un archivo que contiene justo {"name": "Google"}
entonces sí
sample='{"name":"Google"}'
echo $sample| jq '.name'
"Google"
usando --raw-output
ayudas
echo $sample| jq --raw-output '.name'
Google
Pero me topé con esta pregunta porque estaba usando --raw-output
una matriz json como esta
sample='[{"name":"Yahoo"},{"name":"Google"}]'
echo $sample | jq --raw-output 'map(.name)'
[
"Yahoo",
"Google"
]
Y no entendí por qué quedaron las comillas. Me encontré con esta publicación y ahora sé que agregar | .[]
funciona.
echo $sample | jq --raw-output 'map(.name)| .[]'
Yahoo
Google