bestimmte Zeile(n) in Datei löschen

H

Honza

Grünschnabel
Hallo

Ich habe heute nochmal ne Frage:

Wie kann ich in einer Datei eine bestimmte Zeile löschen, in Abhängigkeit von einer Zahl in dieser Zeile.
z.B.:
1 18 12 14 50.000 38.7660 50.06 2.6
1 18 13 15 5.000 8.2280 71.19 1.4
1 18 14 16 5.000 14.3972 69.52 2.0
1 18 15 17 0.500 8.7846 163.40 1.4
1 18 16 18
1 16 2 4 0.500 100000.5576 491.82 3.3
1 16 3 5 0.500 9.1035 433.35 2.3
1 16 4 6 5.000 27.0530 226.64 2.7

In einer Zeile (hier 5; soll aber Variable sein) ist der 5. Wert=0 bzw leer.
Wenn das so ist dann sol es gelöscht werden.

Was noch sehr erstrebenswert für mich wäre wenn ich das Löschen der Zeilen nicht nur vom Wert=0 abhängig mache, sonder z.B. auch Zeilen mit Wert>100 löschen könnte.

MIt einem sed bzw. awk print Befehl geht es bestimmt, doch als Anfänger
finde ich einfach nicht die richtige Systax.
 
Hallo
Schnellschuss mit awk:
Code:
$ awk '($5 !="" && $5 != 0 && $5 <= 100){print $0}' zahldatei >neuedatei && cp neue_datei zahldatei && rm -f neuedatei
Ich habe deshalb awk genommen, da Zahlenvergleich mit sed etwas sehr tricky ist. (von sich aus nicht möglich, da sed nur Strings kennt)

Natürlich gibt es noch viele andere Methoden.

Gruß Wolfgang
 
Zuletzt bearbeitet:

Ähnliche Themen

Mit AWK verschiedene Felder verschiedener Zeilen vergleichen

[Gelöst] Suchen und ersetzen mit Hilfe mehrerer Parameter

Finde Fehler im Code nicht

Fedora 20 - Unlösbare Paket-Duplikat Konflikte

skript zum löschen doppelter dateien

Zurück
Oben