Ich muss die n
-Zeile einer Datei durchlaufen und für jede i between 1 and n - 1
die Differenz line(n - 1) - line(n)
.
Und hier ist die Quelldatei:
%Vor% Diese /dev/vda...
-Linien werden stündlich mit df -BM
in cron.log
-Datei protokolliert und die Differenz zwischen den Zeilen zeigt den stündlichen Festplattenverbrauch.
Die erwartete Ausgabe lautet also:
%Vor% Ich brauche den Text zwischen (
und )
nicht, ich lege es hier nur zur Erklärung.
Ich bin mir nicht sicher, ob ich dich richtig verstanden habe, aber das folgende Skript awk
sollte funktionieren:
Ausgabe:
%Vor%Sie brauchen die anderen Programme in der Pipe nicht. Nur:
%Vor% wird reichen. Die Regex beim Start der Skripte awk
weist awk an, den folgenden Block nur auf Zeilen anzuwenden, die dem Muster entsprechen. Ein Nebeneffekt ist, dass NR
nicht mehr verwendet werden kann, um die "zweite Zeile" zu erkennen, in der die Berechnung beginnt. Ich habe zu diesem Zweck einen custome counter c
eingeführt.
Beachten Sie auch, dass awk
die M
für sich selbst entfernt, weil die Spalte in einer numerischen Berechnung verwendet wurde.
Tags und Links linux bash line difference