awk – Auswertung von Textdateien

Was Awk ist, kann man auf Wikipedia nachlesen. Ich schreibe mir hier Zusammenstellungen auf, die mir merkenswert erscheinen.

Deinstallations-Liste aus Paketmanager dpkg erstellen

Manchmal muss man auch mal aufräumen. Dann hilft es schon, wenn man sich die Liste seines lokalen Paketmanagers (dpkg) für sein Online-Paketverwaltungstool (apt-get, aptitude) aufbereiten kann.

dpkg -l | grep lxde | awk '{progs=progs$2" "} END {print progs}'

Damit wird mit dpkg eine Liste der installierten Programme erzeugt und diese auf den Begriff lxde gefiltert. Das Ergebnis wird an awk per Pipe weitergegeben. Awk verarbeitet aus allen Zeilen die Spalte 2 ($2) und speichert diese zusammen mit einem Leerzeichen in der Variable progs. Zum Schluss (END) wird die Variable progs ausgegeben.

Jetzt kann man noch die Paketverwaltung seiner Wahl mit dem entsprechenden Deinstallations-Befehl (remove, purge) davorsetzen und die Programme werden entfernt.

Ein erweitertes Suchergebnis erhält man mit egrep, so dass man auch nach mehreren Begriffen suchen kann:

dpkg -l | egrep '(lxde|gnome|gdm)' | awk '{progs=progs$2" "} END {print progs}'

Hier muss man nur beachten, dass die Regular Expressions in Anführungszeichen stehen müssen. Im hier gezeigten Beispiel werden von alle Zeilen an awk übergeben, die „lxde“ oder „gnome“ oder „gdm“ enthalten.