Добавление сегодняшней даты в CSV при преобразовании JSON в CSV с использованием JQ
У меня есть результат JSON из ElasticSearch, который я анализирую с помощью jq, извлекаю нужные мне значения из JSON и сглаживаю в CSV. В полях, приходящих из файла JSON, нет даты. Мне нужно иметь возможность написать конкретную дату в качестве первого значения в каждой строке CSV.
ES_Query | jq -r '.aggregations.distinct_UUID.buckets[] | (.latest.hits.hits[]._source | [."_uuid",."site_name",."Jar"]) + (.PS_percentiles.values | [."80.0",."95.0"]) | @csv' >> /home/Outputs/res_wk_${end_date[$weeknum]}.csv
Например, в каждой строке я хочу записать вывод даты +%F перед значениями UUID, Sitename и Jar. Является ли это возможным?
Кстати, я пытался добавить (date +%F
) в начале и конце jq и получил ошибку времени компиляции.
1 ответ
Есть два основных способа:
1) Если ваш jq достаточно свежий, используйте функции времени и даты jq, начиная с now
:
$ jq -n now
1493069762.538462
$ jq -n 'now|strftime("%Y-%m-%d")'
"2017-04-24"
Дополнительные сведения см. В разделе "Дата" интерактивного руководства: https://stedolan.github.io/jq/manual/
2) Передайте строку даты в jq, используя подходящий параметр командной строки, например
$ jq -n --arg date "$(date +%F)" '$date'
"2017-04-24"