我正在尝试调试用户偶尔会锁定他们尝试打开的文件的问题.代码似乎具有正确的异常处理,但用户仍在报告查看错误消息.如何模拟锁定的文件以便我自己调试?
编辑:对于Windows.
我想在bash中将JSON字符串转换为数组.JSON字符串作为参数传递给bash脚本(它不存在于文件中).
有没有办法在不使用临时文件的情况下实现它?
与此类似:
script.sh
#! /bin/bash
json_data='{"key":"value"}'
jq '.key' $json_data
jq: error: Could not open file {key:value}: No such file or directory
Run Code Online (Sandbox Code Playgroud) 我有一个对象列表,如下所示:
[
{
"ip": "1.1.1.1",
"component": "name1"
},
{
"ip": "1.1.1.2",
"component": "name1"
},
{
"ip": "1.1.1.3",
"component": "name2"
},
{
"ip": "1.1.1.4",
"component": "name2"
}
]
Run Code Online (Sandbox Code Playgroud)
现在,我想对组件进行分组和键入,并为每个组件分配一个ips列表:
{
"name1": [
"1.1.1.1",
"1.1.1.2"
]
},{
"name2": [
"1.1.1.3",
"1.1.1.4"
]
}
Run Code Online (Sandbox Code Playgroud) 给定一个json文件格式为:
[
{
name : "A",
value : "1"
},
{
name : "B",
value : "5"
},
{
name : "E",
value : "8"
}
]
Run Code Online (Sandbox Code Playgroud)
我如何使用jq将其转换为这样的东西:
{
"A" : {
name : "A",
value : "1"
},
"B" : {
name : "B",
value : "5"
},
"E" : {
name : "E",
value : "8"
}
}
Run Code Online (Sandbox Code Playgroud)
jq '{(.[].name) : "the name"}' 'myfile.json' 用[] .name键获取一个对象,但如何将对象分配给它?
当jq用于处理JSON时,由于长JSON对象,我经常会丢失概述.因此,类似的东西jq . | less会很好.然而,虽然上面的工作,漂亮的着色jq已经消失.
是否有另一种方法可以jq逐行读取输出,或逐窗口读取输出,而不会使用完整的JSON对象发送垃圾邮件?
编辑:这对我不起作用:echo '{"hello": "world"}' | jq . | less -C
我的请求听起来微不足道,但我找不到办法.我输入了一个JSON对象数组:
[
{
"foo": 1,
"bar": 2
},
{
"foo": 3,
"bar": 4
},
(...)
]
Run Code Online (Sandbox Code Playgroud)
我想要输出相同的JSONL版本,即每行一个对象,而不是数组:
{ "foo": 1, "bar": 2 }
{ "foo": 3, "bar": 4 }
(...)
Run Code Online (Sandbox Code Playgroud)
这是不一样的使用--compact-output,因为这将保护阵列,并给我:
[ { "foo": 1, "bar": 2 }, { "foo": 3, "bar": 4 }, (...) ]
Run Code Online (Sandbox Code Playgroud)
先感谢您.
我不小心运行了hg strip,并删除了一堆提交.从那以后,我没有在回购中做过任何事情.有没有办法让我恢复这一堆提交,撤消我刚刚运行的hg条带?
我想从 jq 输出下面打印成员和 id 的值:
$ cat test_|jq -r '.[] | select(.name=="AAA") | .'
{
"name": "AAA",
"members": 10,
"profiles": 0,
"templates": 0,
"ldapGroups": 0,
"ldapMembers": 0,
"id": "20"
}
Run Code Online (Sandbox Code Playgroud)
不幸的是,它仅适用于其中之一:
$ cat test_|jq -r '.[] | select(.name=="AAA") | .members'
10
Run Code Online (Sandbox Code Playgroud)
用 +" "+ 我得到错误:
$ cat test_|jq -r '.[] | select(.name=="AAA") | .members+" "+.id'
jq: error: number and string cannot be added
Run Code Online (Sandbox Code Playgroud) 我有一个包含数组的非常大的JSON文件.是否可以使用jq将此数组拆分为几个固定大小的较小数组?假设我的输入是这样的:[1,2,3,4,5,6,7,8,9,10]我想把它分成3个元素的长块.所需的输出jq将是:
[1,2,3]
[4,5,6]
[7,8,9]
[10]
Run Code Online (Sandbox Code Playgroud)
实际上,我的输入数组有近300万个元素,都是UUID.