У меня есть команда sed, которую я хочу запустить на огромном, ужасном, уродливом HTML файле, который был создан из документа Microsoft Word. Все, что он должен сделать, это удалить любой экземпляр строки
style='text-align:center; color:blue;
exampleStyle:exampleValue'
Команда sed, которую я пытаюсь изменить,
sed "s/ style='[^']*'//" fileA > fileB
Это отлично работает, за исключением того, что всякий раз, когда в соответствующем тексте есть новая строка, она не совпадает. Есть ли модификатор для sed или что-то, что я могу сделать, чтобы принудительно выполнить сопоставление любого символа, включая символы новой строки?
Я понимаю, что регулярные выражения ужасны в XML и HTML, blah blah blah, но в этом случае строковые шаблоны хорошо сформированы в том, что атрибуты стиля всегда начинаются с одной цитаты и заканчиваются одной цитатой. Поэтому, если бы я мог просто решить проблему новой строки, я мог бы сократить размер HTML более чем на 50% только с помощью одной команды.
В итоге оказалось, что Sinan Ünür perl script работал лучше всего. Это было почти мгновенно, и это уменьшило размер файла от 2,3 МБ до 850 тыс. Хороший ol 'Perl...