Si sus datos no incluyen ninguna otra fecha -como formatos, puede usar sed
en toda la línea para cambiar las fechas:
sed 's#\([0-9][0-9]\)/\([0-9][0-9]\)/\([0-9][0-9][0-9][0-9]\)#\3/\1/\2#g'
Suponiendo que el XML esté bien formado, como
<?xml version="1.0" encoding="UTF-8"?>
<weblogic-service>
<service_info name="dummyapp" version="5.0"/>
<object name="WebApplications">
<item Location="dummyapp/ear/dummyapp.ear" name="dummy"/>
</object>
<object name="jdbc_oracle_nonxa">
<item db_name="MYDB1" db_user="dummyapp_user" global_trans="None" initial_size="10" jndi_name="dummyapp-aty-ds" max_size="25" name="dummyapp-aty-ds" statement_cache_size="10"/>
</object>
</weblogic-service>
(He cerrado etiquetas que no estaban cerradas en la pregunta)
... entonces lo siguiente generará25
(para este ejemplo):
xml sel -t -v '//item/@max_size' -nl file.xml
Esto usa XMLStarlet para obtener el valor del atributo max_value
de todos los nodos item
. El -nl
al final inserta una nueva línea después de la salida.
Si necesita ser más específico y solo mire el nodo item
en el nodo object
cuyo name
esjdbc_oracle_nonxa
:
xml sel -t -v '//object[@name="jdbc_oracle_nonxa"]/item/@max_size' -nl file.xml
Tenga en cuenta que XMLStarlet se instala como xmlstarlet
en lugar de xml
en algunos sistemas.
Usandoxmllint
(sin nueva línea al final de la salida):
xmllint --xpath 'string(//object[@name="jdbc_oracle_nonxa"]/item/@max_size)' file.xml
A menudo, es mucho más rápido, pero menos seguro, con sed o grep:
sed -E -n 's/.*max_size="([0-9]+)".*/\1/p' sample-4.xml
25
o grep:
grep -Eo 'max_size="[0-9]+" ' sample-4.xml | grep -Eo "[0-9]+"
25
No valida el xml y puede elegir el código comentado sin reconocerlo. Si observa la pantalla y obtiene dos resultados, es posible que lo note, pero si se usa en un proceso automatizado, es propenso a errores.
A veces ha escrito el programa, generando el xml, por lo que sabe si podría generar comentarios o max _size="..." en un contexto diferente no deseado. Si conoce los límites, no hay nada malo con sed, grep o awk, excepto que le impiden aprender la hermosa sintaxis xmlstarlet -.:)