Я пытаюсь загрузить 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 для удаления кавычек:
my_json=$(cat ~/Downloads/json.txt | jq '.name' | tr -d \")
Вы можете использовать команду tr для удаления кавычек:
my_json=$(cat ~/Downloads/json.txt | jq '.name' | tr -d \")
Вы можете использовать команду tr для удаления кавычек:
my_json=$(cat ~/Downloads/json.txt | jq '.name' | tr -d \")
Вы можете использовать команду tr , чтобы удалить кавычки:
my_json=$(cat ~/Downloads/json.txt | jq '.name' | tr -d \")
Вы можете использовать команду tr , чтобы удалить кавычки:
my_json=$(cat ~/Downloads/json.txt | jq '.name' | tr -d \")
Вы можете использовать команду tr , чтобы удалить кавычки:
my_json=$(cat ~/Downloads/json.txt | jq '.name' | tr -d \")
Вы можете использовать команду tr , чтобы удалить кавычки:
my_json=$(cat ~/Downloads/json.txt | jq '.name' | tr -d \")
Вы можете использовать команду tr , чтобы удалить кавычки:
my_json=$(cat ~/Downloads/json.txt | jq '.name' | tr -d \")
Вы можете использовать команду tr , чтобы удалить кавычки:
my_json=$(cat ~/Downloads/json.txt | jq '.name' | tr -d \")
Вы можете использовать команду tr , чтобы удалить кавычки:
my_json=$(cat ~/Downloads/json.txt | jq '.name' | tr -d \")
tr
... Я просмотрел 4 разных сообщения с сотнями новичков с людьми, которые пишут 40-мегапиксельные персонажи, чтобы выполнить эту работу. У вас есть правильное (и, вероятно, современное) решение.
– Shadoninja
11 June 2018 в 18:04
В конкретном случае jq вы можете указать, что вывод должен быть в необработанном формате:
--raw-output / -r:
With this option, if the filter´s result is a string then it will
be written directly to standard output rather than being formatted
as a JSON string with quotes. This can be useful for making jq fil‐
ters talk to non-JSON-based systems.
Чтобы проиллюстрировать использование файла json.txt с вашей ссылки: [!d2 ]
$ jq '.name' json.txt
"Google"
, тогда как
$ jq -r '.name' json.txt
Google
Вы можете использовать eval echo следующим образом:
my_json=$(eval echo $(cat ~/Downloads/json.txt | jq '.name'))
, но это не идеально - может легко вызвать ошибки и / или недостатки безопасности.
В конкретном случае jq вы можете указать, что вывод должен быть в необработанном формате:
--raw-output / -r:
With this option, if the filter´s result is a string then it will
be written directly to standard output rather than being formatted
as a JSON string with quotes. This can be useful for making jq fil‐
ters talk to non-JSON-based systems.
Чтобы проиллюстрировать использование файла json.txt с вашей ссылки:
$ jq '.name' json.txt
"Google"
, тогда как
$ jq -r '.name' json.txt
Google
Вы можете использовать eval echo следующим образом:
my_json=$(eval echo $(cat ~/Downloads/json.txt | jq '.name'))
, но это не идеально - может легко вызвать ошибки и / или недостатки безопасности.
В конкретном случае jq вы можете указать, что вывод должен быть в необработанном формате:
--raw-output / -r:
With this option, if the filter´s result is a string then it will
be written directly to standard output rather than being formatted
as a JSON string with quotes. This can be useful for making jq fil‐
ters talk to non-JSON-based systems.
Чтобы проиллюстрировать использование файла json.txt с вашей ссылки:
$ jq '.name' json.txt
"Google"
, тогда как
$ jq -r '.name' json.txt
Google
Вы можете использовать eval echo следующим образом:
my_json=$(eval echo $(cat ~/Downloads/json.txt | jq '.name'))
, но это не идеально - может легко вызвать ошибки и / или недостатки безопасности.
В конкретном случае jq
вы можете указать, что вывод должен быть в формате raw :
--raw-output / -r:
With this option, if the filter´s result is a string then it will
be written directly to standard output rather than being formatted
as a JSON string with quotes. This can be useful for making jq fil‐
ters talk to non-JSON-based systems.
Чтобы проиллюстрировать использование файла json.txt
из ваша ссылка :
$ jq '.name' json.txt
"Google"
, тогда как
$ jq -r '.name' json.txt
Google
Вы можете использовать eval echo
следующим образом:
my_json=$(eval echo $(cat ~/Downloads/json.txt | jq '.name'))
, но это не идеально - может легко вызвать ошибки и / или недостатки безопасности.
В конкретном случае jq
вы можете указать, что вывод должен быть в формате raw :
--raw-output / -r:
With this option, if the filter´s result is a string then it will
be written directly to standard output rather than being formatted
as a JSON string with quotes. This can be useful for making jq fil‐
ters talk to non-JSON-based systems.
Чтобы проиллюстрировать использование файла json.txt
из ваша ссылка :
$ jq '.name' json.txt
"Google"
, тогда как
$ jq -r '.name' json.txt
Google
Вы можете использовать eval echo
следующим образом:
my_json=$(eval echo $(cat ~/Downloads/json.txt | jq '.name'))
, но это не идеально - может легко вызвать ошибки и / или недостатки безопасности.
В конкретном случае jq
вы можете указать, что вывод должен быть в формате raw :
--raw-output / -r:
With this option, if the filter´s result is a string then it will
be written directly to standard output rather than being formatted
as a JSON string with quotes. This can be useful for making jq fil‐
ters talk to non-JSON-based systems.
Чтобы проиллюстрировать использование файла json.txt
из ваша ссылка :
$ jq '.name' json.txt
"Google"
, тогда как
$ jq -r '.name' json.txt
Google
Вы можете использовать eval echo
следующим образом:
my_json=$(eval echo $(cat ~/Downloads/json.txt | jq '.name'))
, но это не идеально - может легко вызвать ошибки и / или недостатки безопасности.
В конкретном случае jq
вы можете указать, что вывод должен быть в формате raw :
--raw-output / -r:
With this option, if the filter´s result is a string then it will
be written directly to standard output rather than being formatted
as a JSON string with quotes. This can be useful for making jq fil‐
ters talk to non-JSON-based systems.
Чтобы проиллюстрировать использование файла json.txt
из ваша ссылка :
$ jq '.name' json.txt
"Google"
, тогда как
$ jq -r '.name' json.txt
Google
Вы можете использовать eval echo
следующим образом:
my_json=$(eval echo $(cat ~/Downloads/json.txt | jq '.name'))
, но это не идеально - может легко вызвать ошибки и / или недостатки безопасности.
В конкретном случае jq
вы можете указать, что вывод должен быть в формате raw :
--raw-output / -r:
With this option, if the filter´s result is a string then it will
be written directly to standard output rather than being formatted
as a JSON string with quotes. This can be useful for making jq fil‐
ters talk to non-JSON-based systems.
Чтобы проиллюстрировать использование файла json.txt
из ваша ссылка :
$ jq '.name' json.txt
"Google"
, тогда как
$ jq -r '.name' json.txt
Google
Вы можете использовать eval echo
следующим образом:
my_json=$(eval echo $(cat ~/Downloads/json.txt | jq '.name'))
, но это не идеально - может легко вызвать ошибки и / или недостатки безопасности.
В конкретном случае jq
вы можете указать, что вывод должен быть в формате raw :
--raw-output / -r:
With this option, if the filter´s result is a string then it will
be written directly to standard output rather than being formatted
as a JSON string with quotes. This can be useful for making jq fil‐
ters talk to non-JSON-based systems.
Чтобы проиллюстрировать использование файла json.txt
из ваша ссылка :
$ jq '.name' json.txt
"Google"
, тогда как
$ jq -r '.name' json.txt
Google
Вы можете использовать eval echo
следующим образом:
my_json=$(eval echo $(cat ~/Downloads/json.txt | jq '.name'))
, но это не идеально - может легко вызвать ошибки и / или недостатки безопасности.
В конкретном случае jq
вы можете указать, что вывод должен быть в формате raw :
--raw-output / -r:
With this option, if the filter´s result is a string then it will
be written directly to standard output rather than being formatted
as a JSON string with quotes. This can be useful for making jq fil‐
ters talk to non-JSON-based systems.
Чтобы проиллюстрировать использование файла json.txt
из ваша ссылка :
$ jq '.name' json.txt
"Google"
, тогда как
$ jq -r '.name' json.txt
Google
Вы можете использовать eval echo
следующим образом:
my_json=$(eval echo $(cat ~/Downloads/json.txt | jq '.name'))
, но это не идеально - может легко вызвать ошибки и / или недостатки безопасности.