Lieber Besucher, herzlich willkommen bei: Linux Forum Linux-Web.de. Falls dies Ihr erster Besuch auf dieser Seite ist, lesen Sie sich bitte die Hilfe durch. Dort wird Ihnen die Bedienung dieser Seite näher erläutert. Darüber hinaus sollten Sie sich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutzen Sie das Registrierungsformular, um sich zu registrieren oder informieren Sie sich ausführlich über den Registrierungsvorgang. Falls Sie sich bereits zu einem früheren Zeitpunkt registriert haben, können Sie sich hier anmelden.
Quellcode |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 |
#!/bin/sh # # Dieses Skript soll den Mittelwert und die Standardabweichung von Messdaten in # Tabellenform berechnen. Nýýhere Informationen ýýber die einzelnen Optionen # erhýýlt man mit dem Parameter -h. if [ $# -le 0 ]; then echo "Zu wenig Argumente... -h fýýr Hilfe" exit 1 fi #Es folgen die Defaulteinstellungen: QUIET=AUS STANDARDABWEICHUNGTEST=AUS MITTELWERTTEST=AN MESSUNGTEST=AUS COL=1 while [ $# -gt 0 ]; do case $1 in -u) echo "Usage: getmean $@" shift ;; -c) COL=$2 shift shift ;; -s) STANDARDABWEICHUNGTEST=AN shift ;; -q) QUIET=AN shift ;; -m) MITTELWERTTEST=AN shift ;; -v) MITTELWERTTEST=AN MESSUNGTEST=AN STANDARDABWEICHUNGTEST=AN shift ;; *) FILE=$1 break ;; esac done # Wir ermitteln jetzt die Anzahl der Kommentarzeilen KOMMENTAR=`grep -c '#' $FILE` #Nun gebe ich an wie awk bei welchen Optionen rechnen soll if [ $MESSUNGTEST = AN ]; then awk -v col=$COL -v kommentar=$KOMMENTAR 'BEGIN { mess = 0; } /^\#/ { next; } $col ~ /^[0-9]/ {mess = mess + 1; } END { print "Messungen: ",mess; }' $FILE fi if [ $MITTELWERTTEST = AN ]; then awk -v col=$COL -v kommentar=$KOMMENTAR 'BEGIN { MITTELWERT = 0; sum = 0; } /^\#/ { next; } $col ~ /^[0-9]/ {sum=sum+$col} {MITTELWERT=sum/(NR-kommentar); } END { print "Mittelwert: ",MITTELWERT; }' $FILE fi #if [ $STANDARDABWEICHUNGTEST = AN ]; then #............ #............ #fi |
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »kaesekuchen86« (01.01.2007, 23:32)
Benutzerinformationen überspringen
Prof. Dr. Schlaumeier
Wohnort: Mecklenburg, zur Entwicklungshilfe in Chemnitz/Sachsen ;-)
Zitat
Original von kaesekuchen86
Und zu 3: Seh ich das richtig, das awk immer Zeilenweise vorgeht? Wenn ja, dann hab ich da auch schon ne Idee....
Quellcode |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
while getopts ab foo do case $foo in a) echo "Es wurde a gewaehlt" ;; b) echo "Es wurde b gewaehlt" ;; *) echo "Falshc" ;; esac; done |
Quellcode |
|
1 2 |
# echo 3 | awk '{ print $1^2 }' 9 |
Benutzerinformationen überspringen
Prof. Dr. Schlaumeier
Wohnort: Mecklenburg, zur Entwicklungshilfe in Chemnitz/Sachsen ;-)
Quellcode |
|
1 2 3 4 5 6 7 8 9 10 11 |
BEGIN { summe=0 } { quadrat=$1^2 print quadrat summe=summe+quadrat } END { print "SUMME=", summe } |
Quellcode |
|
1 2 3 4 5 6 7 8 9 |
1 2 3 4 5 6 7 8 9 |
Zitat
bash-2.05b$ awk -f sum.awk input.tst
1
4
9
16
25
36
49
64
81
SUMME= 285
bash-2.05b$