Veröffentlicht am

Zeile in einer Tabelle löschen, wenn ein bestimmter Text enthalten ist. (Die Linux Variante)

Anwendungsfall: Wenn ich in Excel Zeilen löschen will, die in einer bestimmte Zelle einen bestimmten wert besitzen,
so ist das in Excel nur über VBA recht mühsam zu erledigen. Der notwendige VBA Code ist ca. 20 Zeilen lang.

Ein weiteres Problem tut sich dann auf, wenn man kein Excel besitzt sondern mit den Alternativen von z.B. Libre Office oder Open Office arbeitet.

Linux Shell Benutzer können sich freuen, denn mit Hilfe von Grep kann man eine Tabelle (im CSV Format) mit einer Zeile Code genau dieses erledigen.

Wie geht man nun vor?

1. Speichere die Tabelle als CSV Datei ab.
2. Öffne in Linux ein Terminal Fenster.
3. wechsel in das Verzeichnis, wo du die CSV Datei gespeichert hast.
4. Gebe folgenden Befehl ein:

grep -vwE „(hamburg|berlin)“ tabelle.csv > ziel.csv

Die Optionen bedeuten folgendes:
v (reverse) = kehrt die Funktion von Grep um. (standardmäßig gibt Grep nämlich die zutreffenden Zeilen aus. mit v werden alle Zeilen ausser den zutreffenden ausgegeben)
w = nur ganze Wörter: es werden in der Tabelle alle Felder mit Hamburg, und Berlin gelöscht, jedoch nicht Hamburger und Berliner.
E = (extended) erweitert den Grep Befehl um den regulären Ausdruck (hamburg|berlin) hamburg oder berlin

möchte man den Unterschied zwischen Groß- und Kleinschreibung ignorieren kann man den Befehl um die Option i erweitern.

CSV Tabelle vor Bearbeitung:

Bildschirmfoto vom 2016-06-22 13:33:45

CSV Tabelle nach Bearbeitung:

Bildschirmfoto vom 2016-06-22 13:38:03

Die benutzten Daten sind rein Zufällige Namen und Orte (per Zufallsgenerator), es handelt sich NICHT um echte Kundendaten. Die Personen existieren nicht.

Wie gefällt dir diese Lösung? Hat Sie dir geholfen? Wenn ja, würde ich mich über ein Kommentar freuen. Falls du eine bessere effizientere Lösung für dieses Problem kennst, würde ich mich auch über einen entsprechenden Hinweis freuen. In dem Sinne

Carpe Diem.

 

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Ich akzeptiere