Pesquisar valor específico de um arquivo

-1

Eu tenho um arquivo xml com conteúdo abaixo de como imprimir apenas o value='[email protected]' que está na linha tendo symbolicName="ROB_EMAIL_ALERT" usando o comando linux shell no Ubuntu.

<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="[email protected]"/>
    
por mrr 06.02.2018 / 23:27

2 respostas

1

Veja isto: link

Então você pode executar este comando:

sed -n '/<property symbolicName="ROB_EMAIL_ALERT"/s/.*value="\(.*\)"[^\n]*//p' /path/to/file
    
por PRATEEK AGRAWAL 07.02.2018 / 02:00
0

Eu faria assim:

sed -nE '/symbolicName="ROB_EMAIL_ALERT"/s/.*(value="[^"]*").*//p'

Este comando sed pesquisa cada linha contendo symbolicName="ROB_EMAIL_ALERT" e imprime apenas a parte value="xyz" dela.

Exemplo de execução

Eu peguei seu exemplo aqui, então quaisquer erros de digitação estão em você. ;)

$ sed -nE '/symbolicName="ROB_EMAIL_ALERT"/s/.*(value="[^"]*").*//p' <test.xml 
value="[email protected]"
    
por dessert 07.02.2018 / 15:27