如何从sed命令中使用的变量中删除换行符和回车符?

时间:2015-09-13 11:46:03

标签: shell sed tr busybox

我正在尝试为android创建一个shell脚本 在此脚本中,我想编辑xml文件中的时间戳键 但是timestamp变量总是留下换行符。

我正在使用来自busybox的 sed tr 命令。 “:”是分隔符
我在 tr 中尝试了 \ r,\ n ,但没有用。

我的脚本代码:

current_time=$(date +%s | busybox tr -d '\r\n')
busybox sed -i "s:name=\"timeStamp3\" value=\"[0-9]*\":name=\"timeStamp3\" value=\"$current_time\":" ./cocos2dxprefsFile.xml

输入:

<?xml version='1.0' encoding='utf-8' standalone='yes' ?>
<map>
    <int name="classic_ufg_b2" value="-10" />
    <int name="timeStamp3" value="1441985760" />
    <string name="lastName">Albert</string>
    <int name="classic_ufg_s" value="262" />
</map>

预期输出:

<?xml version='1.0' encoding='utf-8' standalone='yes' ?>
<map>
    <int name="classic_ufg_b2" value="-10" />
    <int name="timeStamp3" value="**currenttime**" />
    <string name="lastName">Albert</string>
    <int name="classic_ufg_s" value="262" />
</map>

当前输出

<?xml version='1.0' encoding='utf-8' standalone='yes' ?>
<map>
    <int name="classic_ufg_b2" value="-10" />
    <int name="timeStamp3" value="**currenttime**
    " />
    <string name="lastName">Albert</string>
    <int name="classic_ufg_s" value="262" />
</map>

1 个答案:

答案 0 :(得分:0)

我只是想知道为什么你使用 busybox ..我没有这个命令。 以下脚本适用于你..你可以尝试一下。

[TestCaseSource]