Dies könnte für Sie arbeiten (GNU sed):
sed -nr '/SECTION/H;s/.*/&\n&/;G;s/\n.*/\L&/;/\n(.*) .*\n.*\/\1/P' file
Sammle alle SECTION
Linien im Laderaum (HS). Verdoppele die Linie und grenze sie durch einen Zeilenumbruch ab. Fügen Sie die gesammelten Zeilen vom HS an und konvertieren Sie alles vom ersten Zeilenende bis zum Ende in Kleinbuchstaben. Unter Verwendung einer Rückreferenz wird die Variable mit dem Abschnittsuffix verglichen, und wenn dies der Fall ist, wird nur die erste Zeile, d. H. Die Originalzeile, unverfälscht gedruckt.
N.B. Die -n
ruft die grep-ähnliche Natur von sed auf und die -r
reduziert die Anzahl der Backslashes, die benötigt werden, um eine Regexp zu schreiben.
Willkommen zu SO, bitte zeigen Sie Ihre Codierung Anstrengungen. [Stack Overflow] (http://stackoverflow.com/tour) ist eine Frage-Antwort-Website für professionelle und enthusiastische Programmierer. – Cyrus
Was macht diese drei Linien besonders? Ich sehe nicht das Muster –
@joelgoldstick Foo, Fo1 und Fo3 sind in den ersten 3 Zeilen, nach SECTION/ –