【发布时间】:2019-12-12 03:22:54
【问题描述】:
我有一个日志文件,想从中grep数据,所以我使用Jq通过参数过滤一些数据。
如上所述,我将根据传递给 Jq 的参数过滤数据
详情:
我的日志文件结构:
{
city: "",
phone_number: "",
address: "",
zip_code: "",
person : {
name: "",
sex: "",
...
}
}
我的预期是我想忽略用于过滤的属性是empty 还是null。
例如:
cat my_log_file.log | jq -r --arg city ${city} --arg name ${name} 'select(.city == $city and .person.name == $name)'
使用上面的命令,如果我传递的${city} 参数是empty 或null,那么我想用 city 删除过滤器,只用 name 过滤
试过了还是不行
【问题讨论】:
-
empty不是 JSON 值。你的意思是空字符串"",还是空对象{},或者两者兼而有之?如果您遵循minimal reproducible example 指南,将会很有帮助! -
@peak empty 是
""。谢谢回复!
标签: json select command-line-arguments jq