Mam wiele plików, które chcę zaktualizować, zastępując jeden ciąg wieloliniowy innym ciągiem wieloliniowym. Coś w stylu:
* Some text,
* something else
* another thing
I chcę go zastąpić:
* This is completely
* different text
Rezultat byłby taki, że po zastąpieniu plik zawierający pierwszy blok tekstu będzie teraz zawierał drugi ciąg znaków (reszta pliku pozostanie niezmieniona).
Częścią problemu jest to, że muszę znaleźć listę plików do aktualizacji w systemie plików. Wydaje mi się, że mogę do tego użyć grep (choć znowu nie jest to tak łatwe w przypadku wieloliniowych łańcuchów), a następnie włożyć go w sed?
Czy jest na to łatwy sposób? Sed jest opcją, ale jest niewygodne, ponieważ muszę dodać \ n itp. Czy istnieje sposób, aby powiedzieć „weź dane wejściowe z tego pliku, dopasuj je w tych plikach, a następnie zastąp je treścią tego innego pliku”? W razie potrzeby mogę używać Pythona, ale chcę czegoś szybkiego i prostego, więc jeśli jest dostępne narzędzie, wolę go użyć niż napisać własny skrypt (co wiem, jak to zrobić).
some text, something else another thing
czy obejmuje wiele linii? A może chcesz tylko dopasować some text,\nsomething else\nanotherthing
?