У меня есть несколько файлов, которые я хочу обновить, заменив одну многострочную строку другой многострочной. Что-то вроде:
* Some text,
* something else
* another thing
И я хочу заменить его на:
* This is completely
* different text
В результате будет получено, что после замены файл, содержащий первый блок текста, теперь будет содержать вторую строку (остальная часть файла не изменяется).
Часть проблемы заключается в том, что мне нужно найти список файлов, которые будут обновлены в файловой системе. Я думаю, я могу использовать grep для этого (хотя опять-таки это не так просто сделать с многострочными строками), а затем передать его в sed, может быть?
Есть простой способ сделать это? Sed - вариант, но он неудобен, потому что я должен добавить \ n и т. Д. Есть ли способ сказать «взять входные данные из этого файла, сопоставить их в этих файлах, а затем заменить их содержимым этого другого файла»? Я могу использовать python, если это необходимо, но я хочу что-то быстрое и простое, поэтому, если есть доступная утилита, я бы лучше использовал ее, чем написал свой собственный скрипт (который я знаю, как это сделать).
some text, something else another thing
, занимает ли он несколько строк? Или вы только хотите соответствовать some text,\nsomething else\nanotherthing
?