Предполагая, что OP подтверждает поведение, о котором я упоминал в комментариях, этот скрипт должен работать:
awk '
FNR != 1 { sub("-", "", $1); dates[$1] = dates[$1] FS $2 }
END {
for(i in ARGV) h = h FS "Query"i; sub(" Query0", "Date", h); print h
for(d in dates) print d dates[d]
}
' $(cat "list.txt")
Я подумал, что будет проще перечислить все имена входных файлов в отдельный файл "list.txt", по одному файлу в строке.
В ответе JSON нет ключа .Disconnected
.
Чтобы проверить клавишу .mongodb
на наличие строки connected
, вы можете сделать это:
#!/bin/sh
if wget --timeout 5 -O - -q -t 1 https://www.example.com/healthz |
jq --exit-status '.mongodb == "connected"' >/dev/null
then
# code for the case when MongoDB is connected
else
# code for the case when MongoDB is *not* connected
fi
Это передает ответ напрямую из wget
в jq
вместо того, чтобы идти окольным путем и сохранять его в промежуточной переменной.
Использование--exit-status
(или-e
)с jq
приводит к выходу утилиты со статусом успешного выхода (ноль ), если она не выводит nil
или false
. Выражение, которое мы даем для jq
, выведет true
, если ключ .mongodb
имеет значение connected
.
Затем мы используем статус выхода jq
в операторе if
, чтобы выбрать переход.