标签: json

Bash CLI 从命令的输出中删除引号

我正在尝试使用jqper here加载 JSON 文件。它非常简单,并且有效:

$ cat ~/Downloads/json.txt | jq '.name'
"web"
Run Code Online (Sandbox Code Playgroud)

但是,我需要将此变量的输出分配给命令。我试图这样做,这有效:

$ my_json=`cat ~/Downloads/json.txt | jq '.name'`
$ myfile=~/Downloads/$my_json.txt
$ echo $myfile
/home/qut/Downloads/"web".txt
Run Code Online (Sandbox Code Playgroud)

但我想要/home/qut/Downloads/web.txt

如何删除引号,即更改"web"web

command-line text-processing json

21
推荐指数
2
解决办法
3万
查看次数

Ubuntu 16.04 中的 JSON 验证器

我正在尝试使用一些 JSON 文件验证器。

我遇到过,jq但运行后jq . file.json我只得到了 JSON 格式的输出,而不是我文件中的 JSON 验证。

我想知道如何在 Ubuntu 中检查我的文件中的语法或验证 JSON 格式。请指教!

command-line software-recommendation json

15
推荐指数
3
解决办法
3万
查看次数

在运行 Ubuntu 的 Windows 终端中,如何将默认目录设为 ~ (/home/jake) 而不是 / (root)?

我从 Windows 10 内的 Microsoft Store 安装了 Windows Terminal 和 Ubuntu(我不知道这是 WSL 版本 1 还是版本 2。wsl -l -v命令失败。)。

我的默认目录设置为正确的目录,但它始终以 root 身份打开。我该如何修复此配置?

在此处输入图片说明

command-line windows directory windows-subsystem-for-linux json

14
推荐指数
2
解决办法
2万
查看次数

“jsonlint:找不到命令”,尽管已安装 jsonlint

我有兴趣jsonlint在 Ubuntu 16.04 操作系统中使用命令行。所以我执行了

sudo apt-get install jsonlint

我得到了

Reading package lists... Done
Building dependency tree       
Reading state information... Done
jsonlint is already the newest version (1.4.0-1build1).
0 upgraded, 0 newly installed, 0 to remove and 20 not upgraded.
Run Code Online (Sandbox Code Playgroud)

但是当我尝试执行时

jsonlint -v packets.json
Run Code Online (Sandbox Code Playgroud)

我有

jsonlint: command not found
Run Code Online (Sandbox Code Playgroud)

为什么?我该如何解决?

command-line apt execute-command 16.04 json

6
推荐指数
1
解决办法
4515
查看次数

如何使用bash curl将JSON作为变量发送?

我正在尝试使用 curl 发送 POST 请求,但我想将 json 数据存储在一个变量中,以便在发生错误时重新发送它。我使用了这个代码:

jsonvariable="{"ora" : "value1", "temp" : "value2", "rh" : "value3", "lat" : "value4", "longi" : "value5"}"


curl -X POST -H "Content-Type: application/json" -d '$jsonvariable' http://localhost:8080/updates
Run Code Online (Sandbox Code Playgroud)

-d选项后的格式不正确。你能帮助我吗?

这段代码:

curl -X POST -H "Content-Type: application/json" -d '{"ora" : "value1", "id" : "value2", "temp" : "value3","rh" : "value4", "lat" : "value5", "longi" : "value6"}' http://localhost:8080/updates
Run Code Online (Sandbox Code Playgroud)

相反,没有错误

bash curl json

4
推荐指数
1
解决办法
2万
查看次数

如何读取 .json 以输出特定数字?

你好我一直在使用这个:

curl -s "http://api.openweathermap.org/data/2.5/forecast?id=6361046&APPID=6be5e3a6e62680c28044791e8fc7b568&units=metric" -o ~/.cache/weather.json
Run Code Online (Sandbox Code Playgroud)

在我的缓存文件夹中写入一个 weather.json 文件。输出是这样的。问题是它仅在 1 行中,我正在尝试使用 grep 来获取今天的图标值的输出:

{"cod":"200","message":0,"cnt":40,"list":[{"dt":1574629200,"main":{"temp":12.8,"temp_min":12.8,"temp_max":13.07,"pressure":1020,"sea_level":1020,"grnd_level":1012,"humidity":82,"temp_kf":-0.27},"weather":[{"id":804,"main":"Clouds","description":"overcast clouds","icon":"04n"}]
Run Code Online (Sandbox Code Playgroud)

在这种情况下是“04n”,所以我可以使用这样的东西:

~/.weather-icons/$(grep "icon" ~/.cache/weather.json).png
Run Code Online (Sandbox Code Playgroud)

这将输出,~/.weather-icons/04n.png以便我可以使用文件夹中与图标值同名的图标,以使用 $image 在 conky 中显示。我的问题是我怎样才能做到这一点?我不知道是否有更好的命令来使用此处显示的参数读取 file.json 或者是否有一种方法可以使用 grep 仅输出图标值。谢谢

conky grep json

4
推荐指数
1
解决办法
1714
查看次数

在 shell 上将文本文件转换为 CSV

我想将文本文件转换为 CSV 格式。

以下是该文件的摘录:

{"Outdated":false,"Watt":233,"Timestamp":1669647142,"A_Plus":6523.896,"A_Plus_HT":4494.82,"A_Plus_NT":2029.076,"A_Minus":8841.63}
{"Outdated":false,"Watt":235,"Timestamp":1669647152,"A_Plus":6523.896,"A_Plus_HT":4494.82,"A_Plus_NT":2029.076,"A_Minus":8841.63}
{"Outdated":false,"Watt":235,"Timestamp":1669647596,"A_Plus":6523.896,"A_Plus_HT":4494.82,"A_Plus_NT":2029.076,"A_Minus":8841.63}
{"Outdated":false,"Watt":233,"Timestamp":1669651191,"A_Plus":6524.496,"A_Plus_HT":4495.42,"A_Plus_NT":2029.076,"A_Minus":8841.63}
{"Outdated":false,"Watt":276,"Timestamp":1669654797,"A_Plus":6524.816,"A_Plus_HT":4495.74,"A_Plus_NT":2029.076,"A_Minus":8841.63}
{"Outdated":false,"Watt":437,"Timestamp":1669658393,"A_Plus":6525.901,"A_Plus_HT":4496.825,"A_Plus_NT":2029.076,"A_Minus":8841.63}
{"Outdated":false,"Watt":362,"Timestamp":1669661992,"A_Plus":6526.732,"A_Plus_HT":4497.656,"A_Plus_NT":2029.076,"A_Minus":8841.63}
{"Outdated":false,"Watt":471,"Timestamp":1669665603,"A_Plus":6527.062,"A_Plus_HT":4497.986,"A_Plus_NT":2029.076,"A_Minus":8841.63}
Run Code Online (Sandbox Code Playgroud)

该结构类似于 JSON 文件,但不幸的是结构并不完全匹配。我已经使用过这个工具(https://github.com/alingse/jsoncsv),但不幸的是,由于结构错误,我收到了错误消息。

如何将其转换为 CSV 文件?

感谢您的帮助!

command-line csv text-processing json

4
推荐指数
3
解决办法
3246
查看次数

如何仅删除字段中的最后一个正斜杠?

我有一个 json 文件,我只需要删除最后一个正斜杠。看例子:

{"url":"http://example.com/vary/file/","originalUrl":"http://example.com/vary/file/","applications":[{.........}]}
Run Code Online (Sandbox Code Playgroud)

我只希望数据看起来像:

{"url":"example.com/vary/file","originalUrl":"example.com/vary/file","applications":[{.........}]}
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点sed

command-line sed text-processing json

3
推荐指数
3
解决办法
3637
查看次数

Cronjob 将 json 保存到错误的目录中

Ubuntu 16.04 上有一个运行 PHP 脚本的 Cron 作业

$parseinfo = 'parseme.json';
$handle = fopen($parseinfo, 'w');
fwrite($handle, json_encode($res));
Run Code Online (Sandbox Code Playgroud)

将数据解析为 JSON 文件。PHP 脚本应该在此 PHP 脚本所在的同一文件夹中写入数据,但我遇到了一个问题,即 JSON 被保存到 root 的主目录中:

这就是我设置 Cron 作业的方式:

*/10 * * * *  root    /usr/bin/php    /var/www/somederictory/somefolder/parse.php > /dev/null
Run Code Online (Sandbox Code Playgroud)

从终端:

*/10 * * * *  root    /usr/bin/php    /var/www/somederictory/somefolder/parse.php > /dev/null
Run Code Online (Sandbox Code Playgroud)

简而言之:JSON 正在被保存,/root而我希望它被保存到/var/www/somederictory/somefolder/ 我应该怎么做来修复它?

编辑:它不是重复的,PHP 可以工作,正在保存 JSON,但是方式错误。我要求帮助我了解当前的 Cron 设置有什么问题。

php cron 16.04 json

3
推荐指数
1
解决办法
1072
查看次数

如何在使用 bash 脚本的 curl 命令中设置布尔值

我需要设置为变量 true/false 值并使用curl命令将他发送到 json 中:

name=$1
sx=$2

`curl -d '{"name":"'"$name"'", "sex":true}' -H "Content-Type: application/json" -X POST http://localhost:8080/setacc`
Run Code Online (Sandbox Code Playgroud)

变量sx接受值malefemale如何将适当的布尔值设置为sex变量?

bash json

3
推荐指数
1
解决办法
4352
查看次数

Bash,从 json 行获取值

系统

\n\n
Linux local 5.0.0-27-lowlatency #28-Ubuntu SMP PREEMPT Tue Aug 20 20:33:37 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux\n
Run Code Online (Sandbox Code Playgroud)\n\n

问题

\n\n

我有输入文件。

\n\n
{ "article": {"code": "01333457004","name": "ALAZANIS VALLEY 2015","note": "\xc4\x8cERV V\xc3\x8dNO EVROPA V\xc3\x9dCH OSTATN\xc3\x8d","sel_unit": "Kus","unit_price": 229.0,"category": "\xc4\x8cERVEN\xc3\x89,POLOSLADK\xc3\x89","unit": "L","EAN": "4867601700052","unit_volume": 0.75,"producer": null,"tax": 21.0,"text": "Alazanis Valley 2015;Gruzie,Kachetie;\xc4\x8derven\xc3\xa9 polsladk\xc3\xa9;750ml;16\xc2\xb0C;Alazanis Valley 2015;Gruzie,Kachetie;\xc4\x8derven\xc3\xa9 polsladk\xc3\xa9;750ml;16\xc2\xb0C;","is_action": "1","action_from": "20190905","action_to": "20190918","ordered_from": "20190126","ordered_to": "20190830","shelf_id": "1030542","is_outlet": 0}}\n
Run Code Online (Sandbox Code Playgroud)\n\n

我怎样才能得到这个输出(一些列)?

\n\n
"code": "01333457004","name": "ALAZANIS VALLEY 2015","is_action": "1","action_from": "20190905","action_to": "20190918"\n
Run Code Online (Sandbox Code Playgroud)\n\n

没有jq或其他应用程序,我只需要 bashsedawk,或一些基本命令,我没有安装它的管理员权限。

\n\n

我试过

\n\n …

bash sed awk json

1
推荐指数
1
解决办法
1万
查看次数

bash 中如何知道 JSON 数组是空数组?

我使用此代码来使用 GitHub API 并自动执行一些任务:

curl --silent -H 'Authorization: token github_access_token' 'https://api.github.com/orgs/OrganizationName/repos?per_page=100'
Run Code Online (Sandbox Code Playgroud)

有时我得到这样的回应:

[

]
Run Code Online (Sandbox Code Playgroud)

我想知道响应是否是空数组。

我想过使用jqlikeecho $Response | jq -r ".[]"但我不知道如何从那里继续。

如何在 bash 中找出 JSON 字符串是否为空数组?

command-line text-processing json

1
推荐指数
1
解决办法
2102
查看次数