Gibt es bereits ein Skript / Programm / Dienstprogramm für die folgenden Anforderungen auf optimierte Weise?
someCommand |
tee >(grep "pattern" > LinesWhichMatch) |
grep -v "pattern" > LinesWhichDoesNotMatch
text-processing
grep
tee
balki
quelle
quelle
awk
aber an welchem Punkt wertet es das aus>
? Wenn es jedes Mal ausgewertet wird, wenn die Bedingung zutrifft, erhalten Sie zwei einzeilige Dateien ...>
druckt alle Ausgaben in die Datei und überschreibt vorhandene Dateien. Es wird nicht so ausgewertet, dass neue Zeilen alte Ausgaben derselben Instanz von überschreibenawk
. Das heißt, wenn es mehrere Übereinstimmungen gibt, enthält die Datei "Übereinstimmung" jede Übereinstimmung, die durch getrennt istOFS
. Der Unterschied zwischen>
und>>
besteht in der Behandlung vorhandener Dateien.Hier ein
sed
Beispiel:Hinweis: Der
w
Befehl sed überschreibt bei jeder Ausführung des Skripts eine vorhandene Datei, jedoch nur, wenn dieser bestimmte Schreibbefehl ausgelöst wird. daher dierm
quelle
sed -n '/PATTERN/p;//! w file-not' infile >file-yes
Sie können Dateien in awk anhängen:
oder kürzer:
quelle