2017-06-30 3 views
1
{ 
     "cluster_name" : "c", 
     "definition_name" : "hive_metastore_process", 
     "firmness" : "HARD", 
     "latest_timestamp" : 1498716914911, 
     "maintenance_state" : "OFF", 
     "original_timestamp" : 1498416757291, 
     "service_name" : "HIVE", 
     "state" : "CRITICAL", 
     } 
-- 
     : { 
     "cluster_name" : "c", 
     "definition_name" : "hive_server_process", 
     "firmness" : "HARD", 
     "latest_timestamp" : 1498716912904, 
     "maintenance_state" : "OFF", 
     "original_timestamp" : 1498419634610, 
     "service_name" : "HIVE", 
     "state" : "CRITICAL", 
     } 

ich möchte original_timestamp auf das Datumsformat aktualisieren? wie in Unix zu tunAktualisierungswert eines bestimmten Schlüssels in Unix

Antwort

1

Für den Umgang mit JSON auf der Kommandozeile ist jq Ihr Freund.

% jq '.original_timestamp |= (./1000 | floor | todate)' <<EOJ 
{ 
    "cluster_name": "c", 
    "definition_name": "hive_metastore_process", 
    "firmness": "HARD", 
    "latest_timestamp": 1498716914911, 
    "maintenance_state": "OFF", 
    "original_timestamp": 1498716914911, 
    "service_name": "HIVE", 
    "state": "CRITICAL" 
} 
EOJ 
{ 
    "cluster_name": "c", 
    "definition_name": "hive_metastore_process", 
    "firmness": "HARD", 
    "latest_timestamp": 1498716914911, 
    "maintenance_state": "OFF", 
    "original_timestamp": "2017-06-29T06:15:14Z", 
    "service_name": "HIVE", 
    "state": "CRITICAL" 
} 
% 
+0

Ich möchte nicht jq stattdessen verwenden Ich möchte UNIX-Befehl ausführen, können Sie helfen, Zeitstempel in Datumsformat mit UNIX-Befehl zu konvertieren? – Jay

+0

Es gibt keine standardmäßigen Unix-Befehle, die json parsen können. Wenn Ihre Eingabe sehr gut ist, könnten Sie wahrscheinlich etwas mit awk konstruieren. – user464502

Verwandte Themen