Command line 编写cmd行脚本来解析xml文件

Command line 编写cmd行脚本来解析xml文件,command-line,scripting,Command Line,Scripting,如果某个xml文件包含以下行,那么(通过脚本从命令行)检查的最佳解决方案是什么: <endpoint uri="endpoint.php" class="flex.messaging.endpoints.AMFEndpoint"/> 还是这条线 <!-- <endpoint uri="endpoint.php" class="flex.messaging.endpoints.AMFEndpoint"/> --> 如果找到第二个(已注释掉),是否停止

如果某个xml文件包含以下行,那么(通过脚本从命令行)检查的最佳解决方案是什么:

<endpoint uri="endpoint.php" class="flex.messaging.endpoints.AMFEndpoint"/>

还是这条线

<!-- <endpoint uri="endpoint.php" class="flex.messaging.endpoints.AMFEndpoint"/> -->

如果找到第二个(已注释掉),是否停止执行

Thx,
martin是单线还是跨多线?如果是前者,您可以使用
grep


更新:似乎有一些支持XML的变体,比如,和。

单行还是跨多行?如果是前者,您可以使用
grep


更新:似乎有一些支持XML的变体,如和。

假设模式发生在单行

#!/bin/bash
awk '
/<endpoint uri=.*endpoint.php.*class.*flex.messaging.endpoints.AMFEndpoint/ && /<!--/{
    exit
}
/<endpoint uri=.*endpoint.php.*class.*flex.messaging.endpoints.AMFEndpoint/{
    # to execute external script inside awk, uncomment below
    #cmd = "myscript.sh"
    #system(cmd)
} 
' file
#/bin/bash
awk'

/ 假设模式发生在单线上

#!/bin/bash
awk '
/<endpoint uri=.*endpoint.php.*class.*flex.messaging.endpoints.AMFEndpoint/ && /<!--/{
    exit
}
/<endpoint uri=.*endpoint.php.*class.*flex.messaging.endpoints.AMFEndpoint/{
    # to execute external script inside awk, uncomment below
    #cmd = "myscript.sh"
    #system(cmd)
} 
' file
#/bin/bash
awk'

/这些并不完全可靠。一个节点称为其OP的样本,而不是我的样本。若端点中有“s”的可能性,那个么完全匹配它就可以了。这看起来不错!如何检查就足够了。我正在尝试执行第二种情况下的脚本。。。仅仅在那里输入命令对我不起作用,例如(./doSomething.sh)我需要使用exec()吗?这些不是完全可靠的。一个节点称为其OP的样本,而不是我的样本。若端点中有“s”的可能性,那个么完全匹配它就可以了。这看起来不错!如何检查就足够了。我正在尝试执行第二种情况下的脚本。。。仅在其中输入命令对我不起作用,例如(./doSomething.sh)我需要使用exec()吗?