Как добавить текущую дату и время в существующий файл json, используя jq - PullRequest
0 голосов
/ 25 сентября 2019

У меня ниже формат файла json

{
  "username":"achu",
  "password":"test1234"
}

Я просто хочу добавить метку времени в вышеуказанную полезную нагрузку и отправить ее как запрос на какую-либо услугу.

КАК я знаю нижеКоманда поможет нам получить текущую отметку в linux:

date +"%r"

, но не уверены, как я могу добавить это в вышеуказанную полезную нагрузку, как показано ниже:

Ожидается:

{
  "username":"achu",
  "password":"test1234",
  "date":"1:20:30 AM PST"
}

jq --version

1,5 В

Возможно ли получить это так?

Ответы [ 3 ]

2 голосов
/ 26 сентября 2019

Одна из многих возможностей:

$ jq --arg date $(date +"%r") '. + {date: $date}'

ps Вместо того, чтобы постоянно спрашивать, возможно ли что-то с помощью jq, вы можете найти лучшее вложение своего времени, чтобы лучше познакомиться с jq.Хорошим справочником является официальное руководство: https://stedolan.github.io/jq/manual/

1 голос
/ 26 сентября 2019

JQ имеет встроенные функции для игры с датами, например

. + {date: (now|strflocaltime("%r"))}

будет делать то, что вы в этом случае

0 голосов
/ 26 сентября 2019

С расширением GNU awk и gawk-json:

$ gawk '
@load "json"
{
   lines=lines $0                      # pack multiline json to a single record
   if(json_fromJSON(lines,data)==1) {  # convert json to an array
       data["date"]=strftime("%r %Z")  # get the date to the array
       print json_toJSON(data,1)       # output json
   }
}' file.json

Вывод в моем tz:

{"username":"achu","password":"test1234","date":"07:46:57 AM EEST"}
...