Нижеследующее работает в bash как скрипт, который в данный момент вызывается вручную.
Последние несколько часов я ломал голову над этим.По жизни я не могу передать переменную в jq, как бы я к ней не поступил.Когда я устанавливаю переменную вручную, не ссылаясь на мою команду jq и выводя ее, это работает.Однако, когда он помещается в мою команду, он не работает.
Я думаю, что это связано с оператором fromdateiso8601
или <
, вызывающим проблему.
timestamp.json
содержит несколько сотен приведенных ниже в файле.Мне нужно сослаться на каждого и вытащить любого старше 45 дней.Вот что я попробовал.
date -d -45days +%s >> 45days.text
days=$(<45days.text)
echo $days
cat $_fileformated | jq 'select(.Timestamp | . == null or fromdateiso8601? < "$days" ) .serverrname' >> $filereport
cat $_fileformated | jq -r --arg days "$days" 'select(.Timestamp | . == null or fromdateiso8601? < "$days" ) .serverrname' >> $filereport
cat $_fileformated | jq -r --arg days "$days" 'select(.Timestamp | . == null or fromdateiso8601? < env.days ) .serverrname' >> $filereport
cat $_fileformated | days="$days" jq 'select(.Timestamp | . == null or fromdateiso8601? < 'env.days' ) .serverrname' >> $filereport
{
"servername": "xxxxxxxx",
"Timestamp": "2018-06-12T13:41:08Z"
}