Mittelwerte berechnen und auslesen lassen

M

MrC88

Grünschnabel
Hallo,

ich bin absolut neu was Shell-Skripte angeht und hab am Montag zum ersten Mal überhaupt was von Bash gehört.

Allerdings hab ich gleich darauf die Aufgabe bekommen ein Skript mit Bash zu schreiben, welches mir aus einer Textdatei mit Messwerten bei bestimmten Punkten Mittelwerte von allen vorhergehenden Messwerten bilden soll und diese dann in eine neue Datei schreiben soll...

Kann mir da bitte jemand weiterhelfen? Ich hab mir auch schon ein Tutorial durchgelesen aber komm trotzdem nicht weiter!

Danke schonmal im voraus!
 
Mit solch spärlichen Informationen wird es schwierig dir zu helfen!
Zum Beispiel wären folgende Informationen nützlich:
- Textdatei mit Messwerten (Beispieldatei)
- Deine bisherigen Versuche und Ergebnisse (mit Code->Bitte in Code-Tags)
 
Das wäre mal eine Beispieldatei...
Was des Skript jetzt machen soll ist, wenn in der ersten Spalte 1.0000, 2.0000, usw. steht soll es von allen vorherigen Werten den Mittelwert bilden und den dann in eine extra Datei schreiben.

Also bei dem Punkt 1.0000 soll es aus den Werten von 0.0000 bis 1.0000 den Mittelwert bilden und beim Punkt 2.0000 dann von 1.0020 bis 2.0000 und immer so weiter. Des Intervall ist immer 0.0020, allerdings kann die Anzahl der Datenpunkte variieren, kann bis 15.000 oder auch 600.000 gehen.

Was den Ansatz bisher angeht... da steht ganz oben nur:
Code:
#! /bin/bash
cat FILENAME.xvg | > MITTELWERTE.xvg

So hab ich die Textfile bekommen...
 

Anhänge

  • Beispiel.txt
    34,3 KB · Aufrufe: 18
das würde ich nicht in bash machen. Sieht für mich nach nem guten und schnellen einzeiler in awk aus. Das nur als Hinweis.

Bin aber zu faul das hier hinzuschreiben. vielleicht habe ich ja heute noch lange weile und poste die lösung.

grüße tuxlover
 
Welche Bestimmten Punkten du meinst ist mir zwar etwas unklar. Den Mittelwert der gesamten zweiten Spalte kannst du aber zum Beispiel so berechnen.
Wie gesagt in Awk ist das besser zu lösen. Weil genau dafür awk gemacht wurde:

Code:
awk '{a = a + $2} END{print a/$NFR}' Beispiel.txt

ansonsten kann ich dir da das Advanced bash scripting guide empfehlen. Hier wirst du in die geheimnisse des Shellscripting eingeführt. Einfach mal in einer beliebige Suchmaschine deiner Wahl danach suchen.
 
Zuletzt bearbeitet:
Ah okay... Wie gesagt ich hab da absolut keine Ahnung davon...! :-/
Vereinfacht gesagt soll er mir einfach bis zum Ende durchgehend immer von 500 Messwerten einen Mittelwert bilden und dann rausschreiben... Also von den ersten 500 Werten, dann rausschreiben, dann von den Werten 501-1000, rausschreiben, usw. ...

Hab dafür auch was gefunden:
Code:
awk ' {loadsum += $2; 500 ++;} END > Mittelwerte.xvg

Aber irgendwie funktioniert des nicht richtig...

Trotzdem schonmal vielen Dank für die schnelle Hilfe!
 
Ah okay... Wie gesagt ich hab da absolut keine Ahnung davon...! :-/
Vereinfacht gesagt soll er mir einfach bis zum Ende durchgehend immer von 500 Messwerten einen Mittelwert bilden und dann rausschreiben... Also von den ersten 500 Werten, dann rausschreiben, dann von den Werten 501-1000, rausschreiben, usw. ...

Hab dafür auch was gefunden:
Code:
awk ' {loadsum += $2; 500 ++;} END > Mittelwerte.xvg

Aber irgendwie funktioniert des nicht richtig...

Trotzdem schonmal vielen Dank für die schnelle Hilfe!

noe die syntax ist ja auch falsch:
http://www.gnu.org/software/gawk/manual/gawk.html
 

Ähnliche Themen

Unix-Kernel + Unix-Shells: Ein paar Grundfragen

Server-Monitoring mit RRDTool

Samba als PDC [Short-HOWTO]

Zurück
Oben