Sortierreihenfolge der Ausgabe bei Verwendung von sed und Iteration im Ordner

Sortierreihenfolge der Ausgabe bei Verwendung von sed und Iteration im Ordner

Ich verwende den folgenden Sed-Befehl, um für jede Datei in einem Ordner eine Zeichenfolge zwischen Mustern zu finden. Die Dateien heißen 01.txt, 02.txt usw.:

sed -n '/PAT1/,/PAT2/{/PAT1/!{/PAT2/!p}}' * >> file

aber die Ausgabe wird nicht nach der gleichen Reihenfolge der Dateien im Verzeichnis sortiert, sondern nach einer anderen Reihenfolge. Ich habe versucht, eine Weiterleitung zum Sortieren durchzuführen, aber die Reihenfolge wird dann auf ALLE Übereinstimmungen/Alle Dateien verteilt, was nicht das ist, wonach ich suche. Ich möchte, dass die Ausgabe in der gleichen Reihenfolge 01.txt, 02.txt angehängt wird. Ich habe gesehen, dass grep dasselbe macht, Übereinstimmungen findet und von einer Datei zur anderen springt. Ich bevorzuge die Verwendung von sed, aber grep ist eine Option. Danke.

Antwort1

Musste auf ein Skript zurückgreifen, immer noch eine Zeile:

for f in file*.txt; do sed -n 'PAT1/,/PAT2/{/PAT1!{/PAT2};}' $f >> outputfile; done

verwandte Informationen