Ich möchte eine Zeile löschen, wenn sie einen angegebenen Wert enthält.
%Vor%Wenn ich also eine Zeile löschen wollte, die 7 als drittes Feld enthält:
%Vor%Es sollte genug sein, um zu sagen
%Vor%Beachten Sie, dass dies ein numerischer Vergleich ist und Sie Zeilen auslassen, in denen das dritte Feld beispielsweise "0.7e1" ist, aber es wird für die von Ihnen bereitgestellten Beispieldaten funktionieren.
Die anderen Antworten funktionieren. Hier ist warum
Awks Standard-Verarbeitungsmodell ist das Lesen einer Eingabezeile, die optional mit dieser Zeile übereinstimmt, und bei Übereinstimmung mit der Eingabe (optional). Die anderen Lösungen verwenden eine Negationsübereinstimmung, also werden Zeilen gedruckt, es sei denn wird die Übereinstimmung hergestellt.
In Ihrem Codebeispiel wird keine Negationsübereinstimmung verwendet: Es heißt "Wenn etwas wahr ist, tun Sie es". Da Sie die Eingabe löschen möchten, können Sie beim Drucken dieses Ziels den Ausdruck einfach überspringen.
%Vor%IHTH.
Tags und Links awk