我想提取主机名的数量(如Server01
=>01
(,并将其作为字符串的一部分存储到文件中。
不幸的是,它仍然不起作用。最后一次尝试如下所示:
sed s/TRUNKNUMBER/0812345`hostname | sed -e 's/[^0-9]//g'`/ -i sipgate.xml
但结果是,TRUNKNUMBER被删除,取而代之的是像"081234501"这样的数字。
我做错了什么?我还想知道如果给出 sed 错误,如何计算字符
sed: -e expression #1, char 13: unknown option to `s'
UPDATE1: 当然,我可以提供更多信息。我以为很清楚,但对不起。
floh@Host01:~$ hostname
Host01
floh@Host01:~$ cat sipgate.xml
<extension name="sipgate">
<condition field="destination_number" expression="^TRUNKNUMBER">
...
</condition>
</extension>
</extension>
正如我所写的,我想将 sipgate 中的"TRUNKNUMBER"替换为由"0812345"+ 主机名数组成的字符串.xml。
使用一个 sed 命令,我可以提取主机名的数量:
floh@Host01:~$ hostname | sed -e 's/[^0-9]//g'
01
这很好,现在我尝试了:
sed s/TRUNKNUMBER/0812345`hostname | sed -e 's/[^0-9]//g'`/ -i sipgate.xml
然后我得到了:
floh@Host01:~$ cat sipgate.xml
<extension name="sipgate">
<condition field="destination_number" expression="^">
...
</condition>
</extension>
</extension>
这不好,因为我期望"...表达式="^081234501">' 在第二行。
抱歉,我发现该命令已经正常:
sed s/TRUNKNUMBER/0812345`hostname | sed -e 's/[^0-9]//g'`/ -i sipgate.xml
结果是"错误的",因为我酸性地重用了没有字符串TRUNKNUMBER
的源文件。(显然我忘记恢复源文件以进行该尝试(
现在我了解到下次我应该删除 -i 以测试输出,而不是尝试修改文件。
再次对不起! 弗洛