【问题标题】:substitute variable in awk commandawk 命令中的替换变量
【发布时间】:2016-03-19 13:28:56
【问题描述】:

我正在使用 awk 命令来更新 xml 中的标签。下面是xml文件中的标签

<ApplicationURL>http://localhost.com</ApplicationURL>

我的 awk 命令是这样的

$appurl=http://remotehost.com

awk -F'<|>' '/<ApplicationURL>[^<>]+<\/ApplicationURL>/{sub($3,"$appurl")}1'  myxml.xml

我的输出没有替换变量。它直接将其作为字符串。你能告诉我哪里出错了。

输出:

<ApplicationURL>$appurl</ApplicationURL>

期望的输出应该替换变量值

【问题讨论】:

    标签: xml awk xml-parsing substitution


    【解决方案1】:

    appurl=http://remotehost.com

    使用内部变量。选项-v 允许在命令行分配变量

    awk -F'<|>' -v "MyVar=${appurl}" '/<ApplicationURL>[^<>]+<\/ApplicationURL>/{sub($3,MyVar)}1'  myxml.xml
    

    【讨论】:

    • 上述命令行存在一个问题。如果标签为空,它不会更新标签。如果标签之间有一些值,它将起作用。
    • 尝试将[^&lt;&gt;]+ 更改为[^&lt;&gt;]*
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-02-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-04
    • 1970-01-01
    • 2023-01-02
    相关资源
    最近更新 更多