我只想显示crit
并且info
不显示介于两者之间的内容。
我试过:
journalctl -p 2..2 -p 6..6
但这不起作用。第二个参数似乎覆盖了第一个参数。
以下代码会产生语法错误:
journalctl -p 2,6
如何只检索两个优先级而中间没有任何值?
我正在寻找比这更简洁的解决方案。
journalctl -o json | jq --argjson p '{"2":"CRIT","6":"INFO"}' --raw-output 'select(.PRIORITY == "2" or .PRIORITY == "6") | "\(.__REALTIME_TIMESTAMP | tonumber / 1000 / 1000 | strflocaltime("%Y-%m-%d %H:%M:%S")) \($p[.PRIORITY]) \(.MESSAGE)"'
答案1
将其指定为原始过滤器,因为您已经知道这些字段:
journalctl PRIORITY=2 + PRIORITY=6
虽然过滤器语法的表达能力不是很强,但它确实支持使用+
. (例如,journalctl A B C + D E
表示“(A && B && C) || (D && E)”。)