Ich habe eine awk-Linie, um einen Durchschnitt zu berechnen, der gut funktioniert, aber wenn ich es in eine if-Anweisung setze, bekomme ich einen Syntaxfehler bezüglich des Teils mit "END". Ich möchte den Durchschnitt nur berechnen, wenn bestimmte Bedingungen erfüllt sind.mehrere Anweisungen nach if-Anweisung
Linie Durchschnitt für die Berechnung, die funktioniert:
awk '{ sum += $2; n++ } END { if (n > 0) print sum/n; }' input.txt
Linie für die Berechnung der durchschnittlichen nach if-Anweisung, die nicht funktioniert:
awk '{if ($1 > 5) { {sum += $2; n++} END { if (n > 0) print sum/n; }}}' input.txt
Ich mag würde, wo der Fehler wissen ist, die Änderung der Art und Anzahl der Klammern hat nicht geholfen.
Warum glauben Sie, ein Muster in einem Block setzen kann? –
Ich dachte, es funktioniert, als würde ich sie nur zusammen ausführen. –
Sie sollten wahrscheinlich Ihre "Bash" -Tag entfernen, das ist eine reine "Awk" -Frage. – Fred