找到并替换 - 用awk或sed

时间:2017-06-09 15:26:09

标签: awk sed scripting text-processing gawk

我正在编写一个使用Electron和ReactJS编写CSS文件的桌面应用程序。

我需要扫描CSS寻找类选择器,然后清除以下声明块并添加一些新属性。

棘手的部分是匹配选择器中的类。我需要将类作为实际目标(不是父级),但可能有多个以逗号分隔的选择器,因此我需要检查所有这些。

例如, 在这个文件中,我正在搜索containerApp类:

.section-main .section-right,.menu .container-manu,.containerApp .container-nav {          背景:黑色; }

.section-main2 .section-left,.menu .container-manu,.section-group-d .containerApp {          背景:红色; }

第一个块不匹配,因为.containerApp仅被提及为真实目标的父级.container-nav。第二个块匹配,我想删除背景:红色;并用其他东西替换它。 进行CSS匹配和重写的最佳方法是什么?

1 个答案:

答案 0 :(得分:0)

如果我正确理解您的要求,.containerApp必须是选择器的最后一个元素。由于选择器以逗号结尾,或者在花括号处,因此您需要使用合适的正则表达式:

sed '/\.containerApp *[,{]/s/{[^}]*}/{ my new css rules }/' app.css