awk et utilisation du case
Bonjour à tous.
J'aimerai utiliser un case plutôt que cette cascade de if et faire de la recherche de motif sur mot entier pour différentier MASTER et MASTER_SERVICE par exemple :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
|
awk -v depot=$DEPOT -v goroco=$CHAINE -v ordre=99 -v comm="" '{
if ( $1 ~ "P_FE_MASTER.Racines" ) { ordre = 1 ; comm="_" }
else if ( $1 ~ "P_FE_MASTER_SERVICE" ) { ordre = 1 ; comm="_" }
else if ( $1 ~ "P_PRD_COM" ) { ordre = 2 ; comm="" }
else if ( $1 ~ "P_PRD_ATT" ) { ordre = 3 ; comm="" }
else if ( $1 ~ "P_PRD_FEX" ) { ordre = 4 ; comm="" }
else if ( $1 ~ "P_PRD_EXT" ) { ordre = 5 ; comm="" }
else if ( $1 ~ "P_PRD_BEF" ) { ordre = 6 ; comm="" }
else if ( $1 ~ "P_PRD_LIF" ) { ordre = 7 ; comm="" }
else if ( $1 ~ "P_PRD_BQC" ) { ordre = 8 ; comm="" }
else if ( $1 ~ "P_FE_MASTER_TABLE" ) { ordre = 9 ; comm="" }
else if ( $1 ~ "P_FE_MASTER_PROC" ) { ordre = 10 ; comm="" }
else if ( $1 ~ "P_FE_MASTER" ) { ordre = 11 ; comm="" }
else if ( $1 ~ "P_FE_SLAVE_TABLE" ) { ordre = 12 ; comm="" }
else if ( $1 ~ "P_FE_SLAVE_PROC" ) { ordre = 13 ; comm="" }
else if ( $1 ~ "P_FE_SLAVE.Racines" ) { ordre = 1 ; comm="_" }
else if ( $1 ~ "P_FE_SLAVE" ) { ordre = 14 ; comm="" }
else { cible = "package non defini" ; ordre = 99 ; comm="#" }
print ordre "!" comm "INSTALLE |" $1 "|" depot "|" goroco
}' |
Merci d'avance.