我有像这样的json结构的文件:
[
{
"uid": 11111,
"something": {
(...)
}
},
{
"uid": 22222,
"something": {
(...)
}
}
]
我一次读取所有文件(cat *),我想知道哪个部分来自哪个文件,所以我需要以某种方式对它进行分组。
所以,我的想法是将每个文件的内容移动到具有自己成员的更高(父)对象。
[
{
"var1": "val1"
"var2": "val2"
{
"uid": 11111,
"something": {
(...)
}
},
{
"uid": 22222,
"something": {
(...)
}
}
}
如何用jq做到这一点?
答案 0 :(得分:0)
#!/bin/bash
# For simplicity, assume each file in FILELIST contains a single JSON entity.
# Then instead of using cat FILELIST, use mycat FILELIST, e.g. mycat *.json
function mycat {
for file
do
jq --arg file "$file" '{"file": $file, "contents": .}' "$file"
done
}
如果你有一个足够新的jq版本(例如jq 1.5),那么一个替代方案是:
jq '{file: input_filename, contents: .}' FILELIST