sed计算

tom*_*omh 3 regex sed

我想解析一个css文件并将每个像素值乘以(2/3).我想知道这是否可能与sed?我知道这是不正确的语法,但我认为这将带回家我想要实现的解释:

sed -e "s|\([0-9]*\)px|int((\1 * 2)/3)|g" file.css
Run Code Online (Sandbox Code Playgroud)

所以基本上我想取\ 1,乘以(2/3)并转换为和int.或者也许awk更有可能?假设我可以编写一个python脚本,但想知道它是否可以通过更快的方式完成.

谢谢

gho*_*g74 7

使用awk

$ cat file
foo: 3px; bar: 6px

$ awk '{for(i=1;i<=NF;i++){if($i~/^[0-9]+px/){o=$i;sub(/^[0-9]+/,"",o);$i=($i+0)*(2/3)o}}}1' file
foo: 2px; bar: 4px
Run Code Online (Sandbox Code Playgroud)