Я пытаюсь загрузить файл в формате JSON , используя jq
на здесь . Это довольно просто, и это работает:
$ cat ~/Downloads/json.txt | jq '.name'
"web"
Однако мне нужно назначить вывод этой переменной команде. Я пытался сделать это, и это работает:
$ my_json=`cat ~/Downloads/json.txt | jq '.name'`
$ myfile=~/Downloads/$my_json.txt
$ echo $myfile
/home/qut/Downloads/"web".txt
Но я хочу /home/qut/Downloads/web.txt
.
Как мне удалить цитаты, то есть изменить "web"
на web
?
tr
команду ... Я просмотрел 4 разных поста с сотнями голосов с людьми, написавшими 40+ символов мега-однострочников, чтобы выполнить свою работу. У вас есть правильное (и, вероятно, современное) решение.В частном случае
jq
вы можете указать, что вывод должен быть в необработанном формате:Чтобы проиллюстрировать, используя образец
json.txt
файла по вашей ссылке :в то время как
источник
Вы можете использовать
eval echo
как это:но это не идеально - может легко вызвать ошибки и / или недостатки безопасности.
источник
Там более просто и эффективно, используя встроенную функцию удаления префикса / суффикса оболочки:
Источник /programming/9733338/shell-script-remove-first-and-last-quote-from-a-variable
источник