我正在尝试使用awk / gawk修改指定CSS样式的属性。例如,如何更改样式cta_grad的正确属性?

.cta_grad {
    cursor: pointer;
    cursor: hand;
    position: absolute;
    bottom: 38px;
    right: 34px;
    width: 77px;
    height: 29px;
    overflow: hidden;
    background-image: url("images/cta_grad.png");
}


这是我正在寻找的bash:

gawk -i inplace 'EDIT right VALUE OF cta_grad TO 14px' style.css


给我:

right: 14px;


另外,我想更改属性名称本身,例如:从右向左更改。就像是:

gawk -i inplace 'CHANGE right PROPERTY OF cta_grad TO left' style.css


给我:

left: 34px;


谢谢

最佳答案

awk实现的一种非鲁棒方法是

$ awk -v k="right:" '$1==k{sub(k,"left:")}1' file

.cta_grad {
    cursor: pointer;
    cursor: hand;
    position: absolute;
    bottom: 38px;
    left: 34px;
    width: 77px;
    height: 29px;
    overflow: hidden;
    background-image: url("images/cta_grad.png");
}

$ awk -v k="right:" '$1==k{sub($2,"14px;")}1' file

.cta_grad {
    cursor: pointer;
    cursor: hand;
    position: absolute;
    bottom: 38px;
    right: 14px;
    width: 77px;
    height: 29px;
    overflow: hidden;
    background-image: url("images/cta_grad.png");
}


但最好使用支持CSS的工具。

07-26 01:03