【发布时间】:2011-04-04 14:46:10
【问题描述】:
我通过 shell 命令保存了一个值: 例如:
timeoutvalue=`echo "timeout=2.0"`
我必须从另一个文本中 grep 超时值,并用这个超时值替换它。 比如文字是egtest:
<host ip="255.255.255.0" name="testhost" description="hostfortest" connection="xmlrpc" timeout=4.0/>
我想从上面的文本中grep超时的值,并将timeout=4.0的值替换为timeout=2.0(我通过shell命令保存为变量的值)。
我的问题是: (1)为了一个简单的测试,我想将timeout=4.0的值替换为$timeoutvalue。 所以我的命令是:
sed 's/timeout=4.0/$timeoutvalue/g' egtext.
但似乎文字变成了:
<host ip="255.255.255.0" name="testhost" description="hostfortest" connection="xmlrpc" $timeoutvalue/>
谁能告诉我为什么错了?
(2)对于这个问题,我必须首先从文本中grep timeout=4.0,并将值4.0 替换为保存的变量值(在我的示例中:2.0)。
我想,但我不知道使用哪个命令来实现这一点(awk?sed?)
因为文本的字段是不确定的,(例如,在这个文本中,超时在$5,但可能在另一个文本中,它可能更改为$6)。我的意思是可以改成:
<host ip="255.255.255.0" name="testhost" description="hostfortest" connection="xmlrpc" type="onebox" timeout=4.0/>
有人可以帮我解决这个问题吗?
【问题讨论】: