Klingt nach einem Job für awk! Wenn das Format etwas stabil ist, sollte das folgende awk-Skript die Aufgabe erfüllen:
$ cat t1 [04-28-2018 22:49:30] TPS: 20.0 Memory free: 2394.0/4551.0 (52%) Players online: 20/100 Total chunks loaded: 8413 Total entities: 1532 [04-28-2018 22:49:30] TPS: 20.0 Memory free: 2394.0/4551.0 (52%) Players online: 20/100 Total chunks loaded: 8413 Total entities: 1532 [04-28-2018 22:49:30] TPS: 20.0 Memory free: 2394.0/4551.0 (52%) Players online: 20/100 Total chunks loaded: 8413 Total entities: 1532 [04-28-2018 22:49:30] TPS: 20.0 Memory free: 2394.0/4551.0 (52%) Players online: 20/100 Total chunks loaded: 8413 Total entities: 1532 [04-28-2018 22:49:30] TPS: 20.0 Memory free: 2394.0/4551.0 (52%) Players online: 20/100 Total chunks loaded: 8413 Total entities: 1532 $ awk ' END ' t1 100
Grundsätzlich sind die Schritte:
1) Weisen Sie der Variablen po die Position 11 jeder Zeile zu. 2) Teilen Sie po im Zeichen /, und ordnen Sie die Teile dem Feld a zu. 3) Fügen Sie das erste Element von Feld a der Variablen für die laufende Summe hinzu. 4) END stimmt nach allen Daten überein gelesen wurde, drucken Sie die laufende Gesamtsumme
Wenn sich andere Daten in der Datei befinden, können Sie awk anweisen, nur Zeilen zu verarbeiten, die einem bestimmten Muster entsprechen, z.
$ awk '/TPS:/ END ' t1
Awk ist standardmäßig auf Mac und Linux installiert und kann kostenlos unter Windows heruntergeladen werden. Siehe: https://stackoverflow.com/q/21927944/988525 oder eine schnelle Google-Suche. Cygwin oder das neue Windows Linux Subsystem sind etwas aufwendiger einzurichten, eröffnen jedoch eine Welt wunderbarer Tools, die für diese Art von Problemen verwendet werden können.