所以我是使用终端和脚本的新手。我想知道如何将dimens.xml中的值列表从px更改为dp,并乘以适当的比例因子。例如,如果我有一个文件
<!-- Test File -->
<dimen name="A">10px</dimen>
<dimen name="B">20px</dimen>
<!-- Other dimens -->
<dimen name="C">30px</dimen>
<dimen name="D">40px</dimen>
我想将所有值缩放2倍,以获得输出:
<!-- Test File -->
<dimen name="A">20dp</dimen>
<dimen name="B">40dp</dimen>
<!-- Other dimens -->
<dimen name="C">60dp</dimen>
<dimen name="D">80dp</dimen>
这是最好的方法吗?任何细节和解决方案的解释也将受到赞赏!
答案 0 :(得分:2)
for number in `cat /tmp/file.xml | sed 's/>\([0-9]*\)px</>\n\1\n</g' | grep '^[0-9]*$' | sort | uniq`;do let double=$number*2;sed -i 's/'$number'px/'$double'dp/g' /tmp/file.xml;done
说明:我捕获数字并在它们之前和之后添加一个换行符,然后我用一个数字grep行,然后我乘以每一个然后我在文件中替换它,同时将px改为dp。