Использование sed для удаления блока текста У меня есть блок текста, который выглядит так: <!-- BOF CLEAN --> ... a bunch of stuff <!-- EOF CLEAN --> Я хочу удалить весь этот блок. Что команда sed? Ответ 1 $ cat text abc <!-- BOF CLEAN --> ... a bunch of stuff <!-- EOF CLEAN --> def $ sed '/<!-- BOF CLEAN -->/,/<!-- EOF CLEAN -->/d' text abc def http://www.catonmat.net/blog/sed-one-liners-explained-part-three/ Ответ 2 Чтобы удалить весь текст, начиная с <!-- BOF CLEAN --> и включающий <!-- EOF CLEAN --> и включающий <!-- EOF CLEAN -->, используйте следующую команду sed: sed -i '/<!-- BOF CLEAN -->/,/<!-- EOF CLEAN -->/d' file_name; Ссылка: Удалить текст или абзац между двумя разделами с помощью sed Ответ 3 В эти дни я использую модификатор /s, чтобы сделать это. Я заметил, что никто не упомянул это. Я использую разметку с свободным пространством, как {bof-nf}... a bunch of stuff {eof-nf} Так, например, чтобы удалить этот блок, используйте $newcontent = preg_replace("/\{bof-nf\}(.*)\{eof-nf\}\\n/s", "", $newcontent); Чтобы сохранить блок, но удалить теги, используйте $newcontent = preg_replace("/\{bof-nf\}.*\\n/", "", $newcontent); $newcontent = preg_replace("/\{eof-nf\}.*\\n/", "", $newcontent);
Ответ 1 $ cat text abc <!-- BOF CLEAN --> ... a bunch of stuff <!-- EOF CLEAN --> def $ sed '/<!-- BOF CLEAN -->/,/<!-- EOF CLEAN -->/d' text abc def http://www.catonmat.net/blog/sed-one-liners-explained-part-three/
Ответ 2 Чтобы удалить весь текст, начиная с <!-- BOF CLEAN --> и включающий <!-- EOF CLEAN --> и включающий <!-- EOF CLEAN -->, используйте следующую команду sed: sed -i '/<!-- BOF CLEAN -->/,/<!-- EOF CLEAN -->/d' file_name; Ссылка: Удалить текст или абзац между двумя разделами с помощью sed
Ответ 3 В эти дни я использую модификатор /s, чтобы сделать это. Я заметил, что никто не упомянул это. Я использую разметку с свободным пространством, как {bof-nf}... a bunch of stuff {eof-nf} Так, например, чтобы удалить этот блок, используйте $newcontent = preg_replace("/\{bof-nf\}(.*)\{eof-nf\}\\n/s", "", $newcontent); Чтобы сохранить блок, но удалить теги, используйте $newcontent = preg_replace("/\{bof-nf\}.*\\n/", "", $newcontent); $newcontent = preg_replace("/\{eof-nf\}.*\\n/", "", $newcontent);