Ich brauche Schleife n
Zeilen einer Datei und für jede i between 1 and n - 1
, um den Unterschied line(n - 1) - line(n)
zu bekommen.Linux Unterschiede zwischen aufeinanderfolgenden Zeilen
Und hier ist die Quelldatei:
[email protected]:/var/www# cat cron.log | grep "/dev/vda"
/dev/vda 20418M 14799M 4595M 77%/
/dev/vda 20418M 14822M 4572M 77%/
/dev/vda 20418M 14846M 4548M 77%/
/dev/vda 20418M 14867M 4527M 77%/
/dev/vda 20418M 14888M 4506M 77%/
/dev/vda 20418M 14910M 4484M 77%/
/dev/vda 20418M 14935M 4459M 78%/
/dev/vda 20418M 14953M 4441M 78%/
/dev/vda 20418M 14974M 4420M 78%/
/dev/vda 20418M 15017M 4377M 78%/
/dev/vda 20418M 15038M 4356M 78%/
[email protected]:/var/www# cat cron.log | grep "/dev/vda" | cut -b 36-42 | tr -d " M"
4595
4572
4548
4527
4506
4484
4459
4441
4420
4377
4356
diejenigen /dev/vda...
Linien stündlich mit df -BM
in cron.log
Datei und die Differenz zwischen den Zeilen protokolliert werden, wird die stündliche Plattenverbrauch offenbaren.
So ist die erwartete Ausgabe wird:
23 (4595 - 4572)
24 (4572 - 4548)
...
43 (4420 - 4377)
21 (4377 - 4356)
Ich brauche nicht den Text zwischen (
und )
, habe ich es hier für die Erklärung nur.
Schöne Antwort. Du könntest dir vielleicht vorstellen, OP zu zeigen, wie man Muster hinzufügt, um Zeilen beginnend mit '/ dev/vda' zu wählen, damit er einfach 'awk'/^ \/dev \/vda/.... 'OriginalLogFile ausführen kann, dh ohne dass er es braucht Grep zuerst. –
@MarkSetchell Sicher, die anderen Programme in der Pipe werden nicht benötigt. Überprüfen Sie mein Update. – hek2mgl
Du bekommst meine Stimme :-) –