Linux/Unix Shell Scripting - Dudas con filtros

 
Vista:
sin imagen de perfil

Dudas con filtros

Publicado por Pedro (3 intervenciones) el 17/05/2018 21:40:48
Buenas gente! estoy terminando de hacer un script usando ksh pero se me presento un problema y no tengo la mas palida idea de como solucionarlo. Resulta que despues de un un par de greps tengo que filtrar el numero de la version actual de una lista y generar otro usando el numero viejo y agregandole 1. Eso ya lo tengo listo. El drama es que como el script es para que todos los usuarios de la empresa usen el mismo sistema de escritura la gran mayoria de los elementos listados no son iguales y hacer un filtrado se me esta complicando. Por ej

Esto seria un elemento normal y bien escrito:
u0150741_1435302_1

usando esto obtengo el ultimo numerito que es la version:
cleartool lsact |awk '{print $2}'| grep $nroGestar | grep [0-9]$ | nawk -F_ '{print $NF}'| sort -rn | head -1

ahora hay variantes como por ej:
u0150441_1435400_int_emr_3

cuando aplico el comando anterior en vez de recibir el ultimo numero me toma el numero del medio y cuando crea la nueva version me crea la version mal.

Que puedo usar para identificar el numero de version? Siempre esta al ultimo y el largo del elemento listado puede variar de largo como puse en los ejemplos pero el numero al final se mantiene. Gracias por su tiempo
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Dudas con filtros

Publicado por Tom (332 intervenciones) el 17/05/2018 21:46:11
¿ Algo como esto ?

1
2
3
4
5
6
~$ TEST=u0150441_1435400_int_emr_3
~$ expr "$TEST" : ".*_\([0-9]*\)"
3
~$ TEST=u0150741_1435302_1
~$ expr "$TEST" : ".*_\([0-9]*\)"
1
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar