Ich habe ein Verzeichnis mit Tausenden von Dateien mit folgenden sich wiederholenden Mustern, die Hunderte von Abschnitten enthalten -
###############
# Section 1
###############
some text
more text
some more text
some text
more text
some more text
###############
# Section 2
###############
some text
more text
some more text
interesting-pattern
some text
more text
some more text
###############
# Section 3
###############
some text
more text
some more text
some text
more text
some more text
Was ich tun muss, ist, einen Weg zu finden, um den gesamten ABSCHNITT zu extrahieren, in dem das "interessante Muster" existiert.
Ich habe versucht, ein grep -iEr 'interesting-pattern' mit den Flags -A und -B zu erstellen, aber das funktioniert nicht, da in jeder Datei vor und nach dem Intersting-Pattern eine unterschiedliche Anzahl von Zeilen im Abschnitt vorhanden sein kann.
Wie geht das am besten?
find ~/your-directory-path/ -type f
; do awk -v RS = "############## \ n #" '/ interesting-pattern / {print FILENAME "\ n", RT $ 0}' $ file; getan . Dies durchsucht rekursiv alle Dateien in "~ / your-directory-path", druckt den Dateinamen, bevor eine Übereinstimmung gefunden wird, druckt eine neue Zeile nach dem Dateinamen und druckt dann den übereinstimmenden Abschnitt.