Estoy tratando de cargar un archivo JSON usando jq
por aquí . Es bastante sencillo y esto funciona:
$ cat ~/Downloads/json.txt | jq '.name'
"web"
Sin embargo, necesito asignar la salida de esta variable a un comando. Traté de hacer esto y esto funciona:
$ my_json=`cat ~/Downloads/json.txt | jq '.name'`
$ myfile=~/Downloads/$my_json.txt
$ echo $myfile
/home/qut/Downloads/"web".txt
Pero yo quiero /home/qut/Downloads/web.txt
.
¿Cómo se quita las comillas, es decir, el cambio "web"
a web
?
tr
comando ... Revisé 4 publicaciones diferentes con cientos de votos positivos con personas que escribieron más de 40 caracteres de mega-one-liners para hacer el trabajo. Tienes la solución correcta (y probablemente moderna).En el caso particular de
jq
, puede especificar que la salida debe estar en formato sin formato:Para ilustrar el uso del
json.txt
archivo de muestra de su enlace :mientras
fuente
Podrías usar
eval echo
así:pero esto no es lo ideal, podría causar fácilmente errores y / o fallas de seguridad.
fuente
Hay más simple y eficiente, utilizando la función de eliminación de prefijo / sufijo de shell nativo:
Fuente /programming/9733338/shell-script-remove-first-and-last-quote-from-a-variable
fuente