Измените значение ключа и напечатайте как измененное значение, так и исходное значение. - PullRequest
0 голосов
/ 23 апреля 2020

Только что обнаружил jq, и я хочу изменить значение ключа и напечатать как измененное, так и исходное значение ключа.

Исходный файл образца

{
  "level": "info",
  "ts": 1587565958.8860734,
  "logger": "http.log.access.log0",
  "msg": "handled request",
  "request": {
    "method": "GET",
    "uri": "/info.php",
    "proto": "HTTP/1.1",
    "remote_addr": "192.168.0.92:42170"
    }
}

Фильтр

.ts |= strftime("%Y-%m-%d %H:%M:%S") | .ts, .request[]

выход

"2020-04-22 14:32:38"
"GET"
"/info.php"
"HTTP/1.1"
"192.168.0.92:42170"

Требуемый выход

1587565958.8860734
"2020-04-22 14:32:38"
"GET"
"/info.php"
"HTTP/1.1"
"192.168.0.92:42170"

jq play

jq play

1 Ответ

1 голос
/ 23 апреля 2020

Спросите, и вы получите:

  • адаптируя ваш запрос -
.ts,
(.ts |= strftime("%Y-%m-%d %H:%M:%S") | .ts, .request[])
  • или более эффективно -
(.ts | ., strftime("%Y-%m-%d %H:%M:%S")),
.request[]
...