-
CSV Zeile löschen wenn
Hallo
Ich knoble seit längerem daran, eine CSV Zeile zu löschen, sollte der Wert in Spalte B keinen Punkt enthalten.
Beispiel:
Code:
name;nummer;beschreibung
alpha;100000;test
beta;100000.1;test
gamma;100000.2;test
In diesem Beispiel sollte demnach die Zeile 1 subtrahiert werden.
Zeile 2 und 3 sollen ausgegeben werden bzw. in eine neue Datei gepiped werden, da diese den geforderten Punkt enthalten.
Da ich ziemlich schlecht im Umgang mit Tools wie sed oder awk bin, erkunde ich für die kleine Anforderung grosse Mühe.
Für jede Hilfe bin ich euch dankbar!
Grüsse
$dollar
-
Hallo,
das geht mit grep -E oder egrep.
Sind die echten Daten anders, als dein Beispiel, musst du den Befehl natürlich anpassen.
Code:
egrep -v "[[:digit:]]{2};" DATEI
Ergebnis:
name;nummer;beschreibung
beta;100000.1;test
gamma;100000.2;test
Gruss zst
-
Falls du auf die Überschrift verzichten willst und nur die Ergebniszeilen benötigst, geht es auch einfacher:
Ergebnis:
beta;100000.1;test
gamma;100000.2;test
Gruss zst
-
Hallo zst
Danke für die Antworten. Ich habe nahezu zeitgleich eine Lösung mit awk gefunden.
Der Vorteil dieser Variante ist, dass per awk die Abfrage auf die bestimmte Zelle gemacht werden kann:
Code:
awk -F ';' '$1 ~ /\./' file_tmp > file_final
Erläuterng:
";" ist der delimiter
"$1" ist die erste Zelle der Zeile
"~ /\./" überprüft ob die Zelle einen Punkt enthält
Besten Dank und Freundliche Grüsse
$dollar