Ich habe eine große Datei mit Inhalt durch Kopfzeilen getrennt.Substitution zwischen zwei Mustern mit Zeilenversatz über sed oder awk
Wie würde ich gehen über das Ersetzen des Textes zwischen der Zeile nach einem bestimmten Header und der Zeile vor einer bestimmten Zeichenfolge (nicht inklusive) in der Datei über sed oder awk?
Beispiel: Ich möchte unter den Text zwischen der Zeile nach header1
und der Linie vor string_near_end_of_file
(nicht inklusive) mit EXAMPLE
in der Datei ersetzen ...
...
header1
#######
content1
header2
#######
content2
...
string_near_end_of_file
...
Vorgesehen Ergebnis:
...
header1
#######
EXAMPLE
string_near_end_of_file
...
Ich weiß, dass sed '/pattern1/,/.. pattern2/c\substition_string'
Datei ersetzt substition_string
zwischen pattern1
und pattern2
und sed -n '/pattern/{n;p}' file
druckt die Linie nach der pattern
passen, aber ich bin mir nicht sicher, ob ich das jetzt zusammenstellen könnte, um mein erklärtes Ziel zu erreichen.
Jede Hilfe würde sehr geschätzt werden!
Habe gerade meine Frage aktualisiert, um es ein wenig klarer zu machen. – AZD
Überprüfen Sie meine aktualisierte Antwort gemäß Ihrer bearbeiteten Frage. – anubhava
Danke! Bevor ich Ihre Antwort akzeptiere, habe ich mich gefragt, was Sie tun würden, wenn 'header1' ein Leerzeichen enthält (so:' header 1')? Ich habe gerade festgestellt, dass ich in meiner Frage einen Fehler gemacht habe und dass ich hätte erwähnen sollen, dass die Header Leerzeichen enthalten - Entschuldigung dafür! – AZD