У меня есть изменение, которое мне нужно сделать на нескольких разных сайтах и которое, возможно, потребуется внести снова в будущем, поэтому я хотел бы поместить его в сценарий оболочки. По сути, я хочу найти конкретный блок класса в файле css, найти один из его атрибутов и изменить значение этого атрибута.
Так например:
.some-id {
some-arbitrary-properties
property-i-want: old-value
maybe-some-more-properties
}
Я хочу изменить только старое значение в property-i-want, и только если оно находится в .some-id.
Мне очень комфортно с grep, но он работает только по одной строке за раз. Мне несколько менее комфортно с sed, но я не видел способа сделать это без детерминированного набора свойств. Например, я мог бы заменить блок sed целиком. Но я хочу оставить все остальные свойства в блоке в покое.
Я бы предпочел не использовать perl или python, но могу. Я хотел бы быть кратким, потому что он состоит из однострочных скриптов.
Напишите небольшую программу, используя библиотеку CSS на любом языке. Вы упомянули Perl, возможно CSS :: Tiny.
Однострочники переоценены, их трудно читать. Выбор стиля, чтение свойства, изменение свойства в случае условия - это более одного шага.