Das liebe Changelog vom Kernel ist mitunter etwas Mühsam zu lesen – und nichts, was man mal schnell für seinen Eigenbau machen will. Also habe ich mir mal gedacht, man könnte doch das gesamte Log etwas kürzen um es lesbar zu bekommen. Die ersten beiden Commits des aktuellen Logs sieht ungefähr so aus:
commit adfb98cd3e937104d58ec60fec2e4f565a31c89d
Author: Greg Kroah-Hartman
Date: Wed Mar 15 10:23:00 2017 +0800Linux 4.10.3
commit 070dfed4d04ef6c18f07a2d147c1be74c8c84f5b
Author: K. Y. Srinivasan
Date: Wed Feb 8 18:30:56 2017 -0700drivers: hv: Turn off write permission on the hypercall page
commit 372b1e91343e657a7cc5e2e2bcecd5140ac28119 upstream.
The hypercall page only needs to be executable but currently it is setup to
be writable as well. Fix the issue.Signed-off-by: K. Y. Srinivasan
Acked-by: Kees Cook
Reported-by: Stephen Hemminger
Tested-by: Stephen Hemminger
Signed-off-by: Greg Kroah-Hartman
Bei diesen beiden Commits merkt man, dass wir einen Haufen Metadaten mitschleppen, die wir eigentlich nicht brauchen. Was auch positiv auffällt ist die immer gleich bleibende Struktur dank Git. Der erste Schritt wäre meiner Meinung nach das Schlüsselwort „commit“ am Zeilenanfang zu suchen und 4 Zeilen danach mitzunehmen. Damit müsste sich ungefähr der Betreff des Commits ausgehen.
wget --quiet https://cdn.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.10.3 -O - | grep -A 4 ^commit
Das Ergebnis sieht schon recht vielversprechend aus:
commit adfb98cd3e937104d58ec60fec2e4f565a31c89d
Author: Greg Kroah-Hartman
Date: Wed Mar 15 10:23:00 2017 +0800Linux 4.10.3
—
commit 070dfed4d04ef6c18f07a2d147c1be74c8c84f5b
Author: K. Y. Srinivasan
Date: Wed Feb 8 18:30:56 2017 -0700drivers: hv: Turn off write permission on the hypercall page
—
Also setzen wir weiter das grep-Messer an und nutzen das Trennzeichen „–“ als nächsten Ankerpunkt. Die Ausgabe von vorhin um grep -B 1 "^--"
erweitert kürzt uns die Ausgabe noch weiter zusammen:
Linux 4.10.3
—
—
drivers: hv: Turn off write permission on the hypercall page
—
Zuletzt noch per grep -B 1 "^--"
das Beiwerk weggeschnitten sieht unsere Kette so aus:
wget --quiet https://... -O - | grep -A 4 ^commit | grep -B 1 "^--" | grep -v "^--"
Das Ergebnis liefert uns nur noch die Betreffzeilen, was das Log in diesem Fall von 2126 Zeilen auf übersichtliche 75 Zeilen zusammen staucht.