bash, uniformisation de numéros de version

2020-04-23

Sur notre projet, les numéros de version des lots s’appellent des GOROCO.

Ils regroupent tout un tas d’applicatifs ayant chacun leur propres numéros de version (format x.y.z).

Ils peuvent être saisis de différentes manières, avec des 0, sans 0… du coup pour uniformiser les valeurs, j’ai réussi à trouver les commandes bash pour les avoir sur 1 caractère si possible (GOROCO) ou bien sur 2 (GOOROOCOO).

#!/bin/bash

function uniformize() {
    local GOROCO="$1"
    BEFORE="$GOROCO"
    GOROCO=$(echo $GOROCO | sed -E 's/(G|R|C|P)0([0-9])/\1\2/g')
    GOOROOCOO=$(echo $GOROCO | sed -e 's/\([RCP]\)/\n\1/g' -e 's/\<\(.\)\([0-9]\)\>/\10\2/g' | tr -d '\n')
    printf "$BEFORE\t$GOROCO\t$GOOROOCOO\n"
}

for v in G2R01C0 G0R1C20 G10R5C3 G2R3C01 G02R03C05; do
    uniformize $v
done
G2R01C0	G2R1C0	G02R01C00
G0R1C20	G0R1C20	G00R01C20
G10R5C3	G10R5C3	G10R05C03
G2R3C01	G2R3C1	G02R03C01
G02R03C05	G2R3C5	G02R03C05