如何从 Linux 命令行更改代码块中的一行代码?

如何从 Linux 命令行更改代码块中的一行代码?

我需要在多个不同的网站上进行更改,并且将来可能需要再次进行更改,因此我想将其放入 shell 脚本中。本质上,我想在 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,但我可以。我想保持简短,因为它将放在一行脚本中。

答案1

使用任何语言的 CSS 库编写一个小程序。你提到了 Perl,也许CSS::Tiny

单行代码被高估了,可能难以阅读。选择样式、读取属性、根据条件更改属性,这些都不止一个步骤。

相关内容