我尝试在 Json 文件中添加一个为 Raid 信息构造的记录
jq '.raid.c0.e252.s0 +={"device": "/c0/e252/s0"}' file.json
Run Code Online (Sandbox Code Playgroud)
但我有两个错误:
jq: error: Invalid numeric literal at EOF at line 1, column 5 (while parsing '.e252') at <top-level>, line 1:
.raid.c0.e252.s0 +={"device": "/c0/e252/s0"}
jq: error: syntax error, unexpected LITERAL, expecting $end (Unix shell quoting issues?) at <top-level>, line 1:
.raid.c0.e252.s0 +={"device": "/c0/e252/s0"}
jq: 2 compile errors
Run Code Online (Sandbox Code Playgroud)
经过一些测试,我明白问题是字段名称。显然e<number>
不被接受。事实上,使用:
jq '.raid.c0.p252.s0 +={"device": "/c0/e252/s0"}' file.json
Run Code Online (Sandbox Code Playgroud)
或者
jq '.raid.c0.eid252.s0 +={"device": "/c0/e252/s0"}' file.json
Run Code Online (Sandbox Code Playgroud)
在这两种情况下,我都得到了预期的结果:
{
"raid": {
"c0": {
"eid252": {
"s0": { …
Run Code Online (Sandbox Code Playgroud)