Lösung dank eurer Hilfe:
Hallo zusammen,
da ich neu hier bin und dies mein erster Beitrag ist wollte ich erst mal alle herzlich willkommen heißen.
Nun zu meinem Problem:
Ich habe noch wirklich kaum bis keine Erfahrungen mit der Linux Bash, da ich erst seit eienr Woche mit Linux arbeite und leider keine ähnlichen Probleme per Forums durchforstung und googlens gefunden habe.
Ich habe zwei CSV Dateien die ich jeweils miteinander vergleichen muss.
folgend seht ihr jeweils einen Ausschnitt dieser 2 Dateien:
efficiency.csv
timestamp total system1 system2 system3 system4 system5
1368226503 157545.183960525 3176.3467296756 2813.7482884704 8790.0145364277 5211.0514319366 0
1368226804 23520.6075705172 3158.6045286046 2631.6138314475 8831.964795268 5192.5968159659 0
1368227103 23298.2506406901 3152.1759124436 2632.659642212 8595.5485819866 5193.9545893496 0
1368227403 23489.5663755255 3247.2633542966 2632.2997355733 8664.2182457893 5198.3045302722 0
total.csv
timestamp partition cores_available cores_usable cores_used cores_used + exclusiv cores_uses + reserved
1368226501 total 34020 32500 25814 26248 30520
1368226801 total 34020 32500 25631 26069 30264
1368227101 total 34020 32468 25633 26081 30309
1368227401 total 34020 32500 25974 26308 30569
Wie unschwer in der efficiency.csv zu erkennen ist, gibt es einen Ausreißer in der Spalte "total"
Nun muss ich hingehen, mir den timestamp packen und diesen in der Total.csv aufsuchen und prüfen, ob dieser Wert größer als der Wert ist, der zur selben Zeit in Spalte 6 der anderen (total.csv) Datei vorhanden ist.
Da die Dateien jedoch mehrere 100000 Zeilen lang sind brauche ich ein Script, was Zeile für Zeile prüft, ob der eine Wert größer ist, als gleicher Wert in der anderen
Ich hoffe ihr könnt mir weiterhelfen oder zumindest ein paar tipps und anhaltspunkte und anregungen geben
)
Mit freundlichen Grüßen,
ceddshot
Code:
#!/bin/bash
while read line
do
timestamp=$(echo $line | cut -d";" -f1 | cut -c1-9)
total=$(echo $line | cut -f2 -d";")
usedPlusExclusiv=`grep -E "^${timestamp}" total.csv | cut -f6 -d";"`
if [ -z $usedPlusExclusiv ]
then egal="scheissegal"
else
intTotal=$(printf %.0f $total)
intusedPlusExclusiv=$(printf %.0f $usedPlusExclusiv)
if [ $intTotal -gt $intusedPlusExclusiv ]
then
echo "Fehlermeldung: ${timestamp}. ${intTotal}>${intusedPlusExclusiv}"
fi
fi
done < efficiency2.csv
da ich neu hier bin und dies mein erster Beitrag ist wollte ich erst mal alle herzlich willkommen heißen.
Nun zu meinem Problem:
Ich habe noch wirklich kaum bis keine Erfahrungen mit der Linux Bash, da ich erst seit eienr Woche mit Linux arbeite und leider keine ähnlichen Probleme per Forums durchforstung und googlens gefunden habe.
Ich habe zwei CSV Dateien die ich jeweils miteinander vergleichen muss.
folgend seht ihr jeweils einen Ausschnitt dieser 2 Dateien:
efficiency.csv
timestamp total system1 system2 system3 system4 system5
1368226503 157545.183960525 3176.3467296756 2813.7482884704 8790.0145364277 5211.0514319366 0
1368226804 23520.6075705172 3158.6045286046 2631.6138314475 8831.964795268 5192.5968159659 0
1368227103 23298.2506406901 3152.1759124436 2632.659642212 8595.5485819866 5193.9545893496 0
1368227403 23489.5663755255 3247.2633542966 2632.2997355733 8664.2182457893 5198.3045302722 0
total.csv
timestamp partition cores_available cores_usable cores_used cores_used + exclusiv cores_uses + reserved
1368226501 total 34020 32500 25814 26248 30520
1368226801 total 34020 32500 25631 26069 30264
1368227101 total 34020 32468 25633 26081 30309
1368227401 total 34020 32500 25974 26308 30569
Wie unschwer in der efficiency.csv zu erkennen ist, gibt es einen Ausreißer in der Spalte "total"
Nun muss ich hingehen, mir den timestamp packen und diesen in der Total.csv aufsuchen und prüfen, ob dieser Wert größer als der Wert ist, der zur selben Zeit in Spalte 6 der anderen (total.csv) Datei vorhanden ist.
Da die Dateien jedoch mehrere 100000 Zeilen lang sind brauche ich ein Script, was Zeile für Zeile prüft, ob der eine Wert größer ist, als gleicher Wert in der anderen
Ich hoffe ihr könnt mir weiterhelfen oder zumindest ein paar tipps und anhaltspunkte und anregungen geben
Mit freundlichen Grüßen,
ceddshot