Forum des développeurs  

Le forum de référence en programmation et développement. Articles, cours et tutoriels du débutant au chef de projet et DBA confirmé.
Précédent   Forum des développeurs > Hardware, Systèmes et Logiciels > Autres systèmes > Unix

Unix Forum d'entraide sur les systèmes Unix et dérivés (*BSD, AIX, etc.). Avant de poster ->F.A.Q BSD F.A.Q. Aix

Réponse
 
Outils de la discussion
Vieux 13/11/2007, 13h23   #1 (permalink)
Candidat au titre de Membre du Club
 
Date d'inscription: juin 2007
Localisation: 74
Âge: 45
Messages: 26
Par défaut [HP-UX] opération sur variable

Bonjour,

Dans un script, je réceptionne une variable (date en l'occurrence) sous la forme ssaa à l'aide d'une fonction interne du genre
Code :
ANNEE=$(appelvar parametre)
et je veux au final disposer uniquement de l'année précédente et sans le siècle au format chaîne de façon à disposer de l'éventuel 0 non significatif de gauche.

Ex : valeur départ -> 2008
valeur finale -> 07

N'étant pas un pro Unix, quelqu'un peut-il perdre 5 minutes pour me donner les quelques commandes miracles pour arriver à mon résultat.

Un grand merci d'avance aux heureux donateurs
Fred
Fred Ratel est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 13/11/2007, 15h57   #2 (permalink)
Candidat au titre de Membre du Club
 
Date d'inscription: juin 2007
Localisation: 74
Âge: 45
Messages: 26
Par défaut

Re-bonjour

Voici le code que j'ai pondu pour parvenir à mon résultat :
Code :
typeset -i ANNEE
ANNEE=$(appelvar parametre) 
ANNEE=ANNEE-1
typeset -L ANNEE
ANNEE=$(print $ANNEE | awk '{print substr($1,3,2)}')
Quelqu'un a-t-il une solution plus simple ?
Merci à tous
Fred
Fred Ratel est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 13/11/2007, 21h35   #3 (permalink)
Membre éprouvé
 
Avatar de BlaireauOne
 
Date d'inscription: mars 2007
Localisation: Toulouse
Messages: 471
Par défaut

En ksh, ceci doit fonctionner.
-R2 pour garder les 2 chiffres à droite (Right) :

Code :
typeset -R2 ANNEE=$(appelvar parametre) 
ANNEE=ANNEE-1
__________________
Loi de Murphy:
La Théorie c'est quand ça ne marche pas mais que l'on sait pourquoi.
La Pratique c'est quand ça marche mais qu'on ne sait pas pourquoi.
Quand la théorie rejoint la pratique ça ne marche pas et on ne sait pas pourquoi.
BlaireauOne est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 14/11/2007, 11h56   #4 (permalink)
Candidat au titre de Membre du Club
 
Date d'inscription: juin 2007
Localisation: 74
Âge: 45
Messages: 26
Par défaut

Merci pour cette indication.

En fait la fonction appelvar impose que la variable de réception ANNEE soit au format Chaîne.

Voilà donc ce que j'ai trouvé de mieux :
Code :
ANNEE=$(appelvar parametre)
typeset -i ANNEE=$ANNEE
typeset -R2 ANNEE=$ANNEE-1
Le premier typeset me met l'année en numérique.
Je soustrait 1 et garde les deux positions de droite grâce au second typeset.

Y a-t-il plus simple ?
Fred Ratel est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 24/01/2008, 23h06   #5 (permalink)
Invité de passage
 
Date d'inscription: février 2006
Messages: 3
Par défaut

salut a tous


Ben essaye ça :

Annee=`print ${Annee#20}`


en supposant qu'on travaille toujours dans le siècle 21



a+
bappof est déconnecté   Envoyer un message privé Réponse avec citation
Réponse

Précédent   Forum des développeurs > Hardware, Systèmes et Logiciels > Autres systèmes > Unix



Outils de la discussion

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are non
Pingbacks are non
Refbacks are non
Navigation rapide


Fuseau horaire GMT +1. Il est actuellement 01h15.


Publiez vos articles, tutoriels et cours et rejoignez-nous dans l'équipe de rédaction du club d'entraide des développeurs francophones. Nous contacter
Copyright 2000-2008 www.developpez.com - Legal informations