脚本/终端命令将px值转换为xml中的dp

时间:2014-01-24 02:12:20

标签: bash shell terminal

所以我是使用终端和脚本的新手。我想知道如何将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>

这是最好的方法吗?任何细节和解决方案的解释也将受到赞赏!

1 个答案:

答案 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。