Sie müssen Daten aus einer JSON-Protokolldatei lesen und mithilfe der Shell Analysedaten abrufen Skript.Aus einer JSON-Protokolldatei in einer SHS-Shellskriptdatei lesen und die Analysedaten abrufen, indem die Anzahl der Vorkommen in der Protokolldatei gezählt wird
Protokolldatei enthält json als unten:
{
info: 'label1',
description: 'some desc',
timestamp: '2016-07-27T06:24:50.335Z'
}
{
info: 'label2',
description: 'some desc',
timestamp: '2016-07-27T06:24:50.335Z'
}
{
info: 'label2',
description: 'some desc',
timestamp: '2016-07-27T06:24:50.335Z'
}
{
info: 'label2',
description: 'some desc',
timestamp: '2016-07-29T06:24:50.335Z'
}
{
info: 'label3',
description: 'some desc',
timestamp: '2016-07-29T06:24:50.335Z'
}
Ich brauche das Ergebnis, wie unten (Shell-Skript):
Labels Date Count
label1 2016-07-27 1
label2 2016-07-27 2
label2 2016-07-29 1
label3 2016-07-29 1
Dieses so weit ist ich gehen könnte, Notwendigkeit ein Vorschlag, wie man sich nähert. \
#!/bin/bash
my_dir=`dirname $0`
file="out.log"
#keysFile="$my_dir/keys.txt"
for log in $(cat $file | jq '{id: .info,time: .timestamp}'); do
#This is as far as I could get. I was able to read the data in the form of {id: 'label1', time: '2016-07-27T06:24:50.335Z' }
#Now I need to somehow create a key value thing in shell and store timestamp/label as key and increment the count
echo $log
done
so ... was Hast du versucht? Hast du mit 'jq' gespielt? – fedorqui
Sobald Sie eine Frage gestellt haben, geben Sie auch Beispielcode oder Ausschnitte an, die Sie ausprobiert haben. Wenn möglich, könnten Sie auch Abschnitte im Code angeben, die Fehler werfen. Die SO-Community wird Ihnen helfen können, sobald Sie diese Details zur Verfügung stellen, sondern nur ein QA-Forum. – KartikKannapur
@KartikKannapur Die Post wurde aktualisiert. – Arun