Estoy tratando de quitar la versión del nombre de un paquete usando solo Bash. Tengo una solución pero no creo que sea la mejor disponible, por lo que me gustaría saber si hay una mejor manera de hacerlo. por mejor quiero decir más limpio, más fácil de entender.versión de tira desde el nombre del paquete usando Bash
supongamos que tengo la cadena "my-program-1.0" y solo quiero "mi-programa". mi solución actual es:
#!/bin/bash
PROGRAM_FULL="my-program-1.0"
INDEX_OF_LAST_CHARACTER=`awk '{print match($0, "[A-Za-z0-9]-[0-9]")} <<< $PROGRAM_FULL`
PROGRAM_NAME=`cut -c -$INDEX_OF_LAST_CHARACTER <<< $PROGRAM_FULL`
realidad, el "nombre del paquete" sintaxis es un nombre de archivo RPM, si importa.
gracias!
¿qué tal plazo se pensaba 'sed "s/[-0-9.] * $ // "'? – BCS
@BCS: O algo un poco más cuidadoso; el tuyo coincide con 'program-name-3 ... 4--789', por ejemplo, o más realista, contra' program-name2-1.0' (borrando incorrectamente el 2 también). – Cascabel
Tenga en cuenta que la versión * puede * tener letras también. –