Ich möchte eine Reihe von Dateien aktualisieren, indem ich eine mehrzeilige Zeichenfolge durch eine andere mehrzeilige Zeichenfolge ersetze. Etwas in der Art von:
* Some text,
* something else
* another thing
Und ich möchte es ersetzen durch:
* This is completely
* different text
Das Ergebnis wäre, dass nach dem Ersetzen die Datei, die den ersten Textblock enthält, jetzt die zweite Zeichenfolge enthält (der Rest der Datei bleibt unverändert).
Ein Teil des Problems ist, dass ich die Liste der zu aktualisierenden Dateien im Dateisystem finden muss. Ich schätze, ich kann grep dafür verwenden (obwohl das wiederum mit mehrzeiligen Zeichenfolgen nicht so einfach ist), um es dann vielleicht in sed zu leiten?
Gibt es eine einfache Möglichkeit, dies zu tun? Sed ist eine Option, aber es ist umständlich, weil ich hinzufügen muss \ n usw. Gibt es eine Möglichkeit zu sagen, "die Eingabe aus dieser Datei zu übernehmen, sie in diesen Dateien abzugleichen und sie dann durch den Inhalt dieser anderen Datei zu ersetzen"? Ich kann bei Bedarf Python verwenden, aber ich möchte etwas schnelles und einfaches. Wenn also ein Dienstprogramm verfügbar ist, würde ich dieses lieber verwenden, als mein eigenes Skript zu schreiben (das ich zu schreiben weiß).
some text, something else another thing
feststellen, ob es sich über mehrere Zeilen erstreckt oder nicht? Oder wollen Sie nur zusammenpassen some text,\nsomething else\nanotherthing
?