Ich benutze das
cat foo.txt | sed '/bar/d'
um Zeilen zu entfernen, die den String bar enthalten in der Datei.
Ich möchte jedoch diese Zeilen und die Zeile direkt danach entfernen . Vorzugsweise in sed , awk oder ein anderes Tool, das in MinGW32 verfügbar ist.
Es ist eine Art Umkehrung dessen, was ich in grep bekommen kann mit -A und -B um übereinstimmende Zeilen sowie Zeilen vor/nach der übereinstimmenden Zeile zu drucken.
Gibt es einen einfachen Weg, dies zu erreichen?
Akzeptierte Antwort:
Wenn Sie GNU sed haben (also nicht eingebettetes Linux oder Cygwin):
sed '/bar/,+1 d'
Wenn Sie bar haben in zwei aufeinanderfolgenden Zeilen wird die zweite Zeile gelöscht, ohne sie zu analysieren. Wenn Sie beispielsweise eine 3-zeilige Datei bar haben /bar /foo , der foo Linie bleibt.