我有一个xml文件,内容如下:如何只打印value='hard@insurance.com',它是行的,使用Ubuntu中的linux命令拥有symbolicName="ROB_EMAIL_ALERT"。
<entries xmi:id="VariableSubstitutionEntry_1468437285392" symbolicName="DB2UNIVERSAL_JDBC_DRIVER_NATIVEPATH" value="/cidba/udb/V10.5/java"/>
<entries xmi:id="VariableSubstitutionEntry_1468437302240" symbolicName="DB2UNIVERSAL_JDBC_DRIVER_PATH" value="/cidba/udb/V10.5/java"/>
<entries xmi:id="VariableSubstitutionEntry_1468437322544" symbolicName="DB2_JDBC_DRIVER_PATH" value="/cidba/udb/V10.5/java"/>
<entries xmi:id="VariableSubstitutionEntry_1503425349323" symbolicName="ROB_EMAIL_ALERT" value="hadr@insurance.com"/>发布于 2018-02-07 01:00:40
参见:https://stackoverflow.com/questions/25508512/shellscript-read-xml-attribute-value
因此,您可以运行以下命令:
sed -n '/<property symbolicName="ROB_EMAIL_ALERT"/s/.*value="\(.*\)"[^\n]*/\1/p' /path/to/file发布于 2018-02-07 14:27:13
我会这样做:
sed -nE '/symbolicName="ROB_EMAIL_ALERT"/s/.*(value="[^"]*").*/\1/p'这个sed命令搜索包含symbolicName="ROB_EMAIL_ALERT"的每一行,并且只打印其中的value="xyz"部分。
我在这里举了你的例子,所以所有的排字都在你身上。;)
$ sed -nE '/symbolicName="ROB_EMAIL_ALERT"/s/.*(value="[^"]*").*/\1/p' <test.xml
value="hadr@insurance.com"https://askubuntu.com/questions/1003703
复制相似问题