2016-04-13 18 views
3

Ich habe eine lange JSON-Zeile mit einer Menge von Daten, die ich grep von ohne die anderen Daten zu sehen.Grep von einer langen Linie

Inhalt:

28.1270450678417,"app_delay_avrg":612,"app_delay_max":4348,"app_delay_min":0,"data_in_sum":88459347,"data_out_sum":5947410,"rps_avrg":19242,"rps_max":46843,"rps_min":120,"success_sum":32948,"errors_sum":12115,"timeout_errors_sum":779,"network_errors_sum":0,"started_at_date":"04/13/2016","started_at_time":"07:12 AM","share_box_info":{"id":1261233,"result_url":"http://loader.io/reports/ff4b7ca58e569af5a9650b9a2b856f39/results/6b4e3ae3f83407c91b10402b2e4231c6","endpoint_widget_url":"//share.loader.io/reports/ff4b7ca58e569af5a9650b9a2b856f39/widget/results/6b4e3ae3f83407c91b10402b2e4231c6","short_url 

Befehl: [email protected]:/home/user# cat data.txt | grep app_delay_max\&quot\;:

Ergebnis (excepts) und der grep Inhalt wird als rot im Terminal markiert.

28.1270450678417,"app_delay_avrg":612,"***app_delay_max":4348***,"app_delay_min":0,"data_in_sum":88459347,"data_out_sum":5947410,"rps_avrg":19242,"r 

Wie kann ich nur diese Ausgabe erhalten und den anderen Inhalt entfernen?

app_delay_max":4348 
+0

der "Inhalt" ist der gesamte Eingang? (Ist das der gesamte Inhalt von data.txt oder gibt es andere Zeilen, die 'app_delay_max "' nicht enthalten)? – poncha

+0

Ich empfehle Ihnen, Ihren Inhalt von 'data.txt' in eine' .ini' Datei zu schreiben. dann lesen Sie es mit Python-Skript. Es wäre einfacher. –

+0

oder, schreiben Sie Ihre JSON in plain JSON-Format Text, dann können Sie es mit Python lesen –

Antwort

5

Sie könnten versuchen,

grep -o 'app_delay_max":[0-9]*' data.txt 

-o, --only Anpassungs Drucken nur die angepassten (nicht leer) Teile einer Anpassungsleitung, mit jedem solchen Teil auf einem separaten Ausgabezeile.

+0

@ponacha In der Tat, aber ich wollte nicht die ursprüngliche Regex auf die Frage passen. Danke – Till

+0

das op gab die Ausgabe der Probe .. sowieso fühle mich frei, meine Änderung zurück zu rollen, wenn Sie möchten;) – poncha

+0

Wie kann ich nur die Werte nach ';:'? – user3580316