Переименование элементов XML в последовательность

Dudo mucho que esto sea lo que necesita, pero esto responde palabra por palabra a su pregunta actual.

Primera parte (asumiendo GNU grepo compatible):

project="$(yourscript|grep -oE '[[:upper:]]{3}')"

Segunda parte:

size="$(yourscript|grep -oE '[[:digit:]]+(\.[[:digit:]]+)?[MGT]')"

Combinado, es más sencillo ejecutar el script una vez, guardar la salida y grep y asignar en la salida guardada:

output="$(script)"
size="$(printf '%s\n' "$output"|grep -oE '[[:digit:]]+(\.[[:digit:]]+)?[MGT]')"
project="$(printf '%s\n' "$output"|grep -oE '[[:upper:]]{3}')"

Alguna explicación
grep -o-solo devuelve el objeto grepped, no toda la línea
-E-Expresión regular extendida
[[:upper:]]-coincide solo con letras mayúsculas ([A -Z], pero independientemente de la configuración regional)
{3}-limita la coincidencia a exactamente 3 caracteres consecutivos.
[[:digit:]]-coincidencia de dígitos ([0 -9], de nuevo sin tener en cuenta la configuración regional)
+-coincide 1 o más veces
\.-coincide con un punto
(...)?-coincide 0 o 1 veces -esto asegura que los números sin un punto decimal también puedan capturarse
[xy]-coincidió exactamente con uno de los elementos x o y.

2
11.11.2017, 01:42
0 ответов

Теги

Похожие вопросы