Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
977 connectés 

  FORUM HardWare.fr
  Linux et OS Alternatifs

  [SCRIPT SHELL] Convertion de date

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[SCRIPT SHELL] Convertion de date

n°479350
mytoo
Posté le 14-05-2004 à 18:45:04  profilanswer
 

Bonjour,
 
Je sais que çà doit être tout con, mais je n'y arrive pas du tout :(  
 
Voilà mon pb:
ma date: 29/Mar/2004
je veux la transformer en 20040329
 
ceci est un exemple, j'aurais pu très bien prendre 14/May/2004 pour le transformer en 20040514
 
merci
 
(c'est la suite du sujet http://forum.hardware.fr/hardwaref [...] 6943-1.htm)


Message édité par mytoo le 14-05-2004 à 18:47:12

---------------
La connaissance se partage
mood
Publicité
Posté le 14-05-2004 à 18:45:04  profilanswer
 

n°479351
Klaimant
?
Posté le 14-05-2004 à 18:45:46  profilanswer
 

la date tu l'as sors d'ou ??


---------------
Fais le ou ne le fais pas, mais il n'y a pas d'essai !!!
n°479353
mytoo
Posté le 14-05-2004 à 18:48:09  profilanswer
 

je la sors d'un log
1.2.3.4 - - [28/Mar/2004:20:30:00 +0200] "TEXTE"  
 
c'est la suite du sujet http://forum.hardware.fr/hardwaref [...] 6943-1.htm
 


---------------
La connaissance se partage
n°479354
Klaimant
?
Posté le 14-05-2004 à 18:49:10  profilanswer
 

ok, ben la je pense que pour t'en sortir, tu fais des cut pour récupérer :
28
Mar
2004
 
et apres des cases avec les noms de mois pour récupérer la valeur du mois


Message édité par Klaimant le 14-05-2004 à 18:49:27

---------------
Fais le ou ne le fais pas, mais il n'y a pas d'essai !!!
n°479360
mytoo
Posté le 14-05-2004 à 18:53:53  profilanswer
 

Klaimant a écrit :

ok, ben la je pense que pour t'en sortir, tu fais des cut pour récupérer :
28
Mar
2004
 
et apres des cases avec les noms de mois pour récupérer la valeur du mois


c'était ma dernière solution, on ne peut pas faire autrement tu penses?
 
comment je fais pour transformer Mar en 03?
 


date="29/Mar/2004"
jj=$($date | cut -d "/" -f 1)
mm=$($date | cut -d "/" -f 2)
aa=$($date | cut -d "/" -f 3)
if $mm=="Jan" then mm="01"
if $mm=="Fev" then mm="02"
if $mm=="Mar" then mm="03"
...je ne connais pas tout les valeurs date en anglais que çà donne mais je verrais


un truc comme çà?, car je ne connais pas très bien toute les commande de shell


Message édité par mytoo le 14-05-2004 à 18:55:21

---------------
La connaissance se partage
n°479365
bobuse
Posté le 14-05-2004 à 18:58:46  profilanswer
 

Sinon avec perl, il doit y avoir un module Time pour convertir les dates, mais ça va pas être de la tarte :/

n°479366
mytoo
Posté le 14-05-2004 à 18:59:50  profilanswer
 

bobuse a écrit :

Sinon avec perl, il doit y avoir un module Time pour convertir les dates, mais ça va pas être de la tarte :/


ha non pas perl  :pt1cable:  non tant pis
je vais faire comme çà, mais est-ce que ce que je viens d'écrire est juste?


---------------
La connaissance se partage
n°479368
bobuse
Posté le 14-05-2004 à 19:02:47  profilanswer
 

tu peux aussi faire un truc du genre :


case $mm in
  Jan) mm=1; break;;
  Feb) mm=2; break;;
  ...
esac


C'est pareil, mais c'est plus lisible ;)

n°479369
Klaimant
?
Posté le 14-05-2004 à 19:03:31  profilanswer
 

bobuse a écrit :

tu peux aussi faire un truc du genre :


case $mm in
  Jan) mm=1; break;;
  Feb) mm=2; break;;
  ...
esac


C'est pareil, mais c'est plus lisible ;)


 
oui voila des cases :P


---------------
Fais le ou ne le fais pas, mais il n'y a pas d'essai !!!
n°479372
mytoo
Posté le 14-05-2004 à 19:05:14  profilanswer
 

ha oui c'est vrai, pas con les cas
on voit l'expèrience derrière
j'essaye çà
et pour le cut


---------------
La connaissance se partage
mood
Publicité
Posté le 14-05-2004 à 19:05:14  profilanswer
 

n°479374
bobuse
Posté le 14-05-2004 à 19:06:56  profilanswer
 

klaimant> ok, javé pas vu ;)
 
mytoo> pour le cut, ça m'a l'air bon ;)

n°479377
mytoo
Posté le 14-05-2004 à 19:08:24  profilanswer
 

thx, j'essaye çà de suite :D
merci les gars
j'espère que çà fonctionnera


---------------
La connaissance se partage
n°479393
mytoo
Posté le 14-05-2004 à 19:24:44  profilanswer
 

:cry:  


test="29/Mar/2004"
jour=$($test | cut -d "/" -f 1)
mois=$($test | cut -d "/" -f 2)
annee==$($test | cut -d "/" -f 3)
 
case $mois in
 Jan) mois="01"; break;;
...
esac
 
echo "j: ${jour} m: ${mois} a:${annee}


et bien j'ai une erreur pour les variables  

jour=$($test | cut -d "/" -f 1)
mois=$($test | cut -d "/" -f 2)
annee==$($test | cut -d "/" -f 3)


No such file or directory
puis j'ai
j: m: a:
 
après j'ai donc essayé avec


jour=29
mois="Mar"
annee=2004


après j'ai plus rien


---------------
La connaissance se partage
n°479400
Klaimant
?
Posté le 14-05-2004 à 19:29:36  profilanswer
 


jour=`cut -d "/" -f 1 $test`


Message édité par Klaimant le 14-05-2004 à 19:30:05

---------------
Fais le ou ne le fais pas, mais il n'y a pas d'essai !!!
n°479404
mytoo
Posté le 14-05-2004 à 19:33:44  profilanswer
 

Klaimant a écrit :

jour=`cut -d "/" -f 1 $test`


j'ai pareille
avec j: m: a:
c'est grave docteur Klaimant? :??:


---------------
La connaissance se partage
n°479405
Klaimant
?
Posté le 14-05-2004 à 19:34:42  profilanswer
 

mytoo a écrit :

j'ai pareille
avec j: m: a:
c'est grave docteur Klaimant? :??:


 
autant pour moi, pas d'espace entre le -f et le 1 : -f1


---------------
Fais le ou ne le fais pas, mais il n'y a pas d'essai !!!
n°479412
mytoo
Posté le 14-05-2004 à 19:38:30  profilanswer
 

idem
pourtant j'ai bien utilisé ` (sur la touche 7) et non ' (sur la touche 4)
 
j'ai un message pour chaque variable
cut: 29/Mar/2004: No such file or directory
...
j: m: a:


Message édité par mytoo le 14-05-2004 à 19:41:05

---------------
La connaissance se partage
n°479418
Klaimant
?
Posté le 14-05-2004 à 19:40:15  profilanswer
 

jour=`echo $test | cut -d "/" -f1`
 
testé et approuvé par mon bash


Message édité par Klaimant le 14-05-2004 à 19:41:23

---------------
Fais le ou ne le fais pas, mais il n'y a pas d'essai !!!
n°479422
Zaib3k
Posté le 14-05-2004 à 19:45:29  profilanswer
 

remplace  `` par $(). c mieux :o


---------------
Le droit à la différence s'arrête là où ça commence à m'emmerder sérieusement.
n°479423
mytoo
Posté le 14-05-2004 à 19:45:34  profilanswer
 

Klaimant a écrit :

jour=`echo $test | cut -d "/" -f1`
 
testé et approuvé par mon bash


 
oui çà focntionne  :D , génial sauf que je ne vois plus mais valeur
j: m: a:
est ce à cause de la focntion case?
car quand je met un dièse à mois:#mois...
j'ai bien j:29 m: a:2004


---------------
La connaissance se partage
n°479425
mytoo
Posté le 14-05-2004 à 19:47:47  profilanswer
 

zaib3k a écrit :

remplace  `` par $(). c mieux :o


oki


---------------
La connaissance se partage
n°479427
Zaib3k
Posté le 14-05-2004 à 19:51:07  profilanswer
 

Code :
  1. 1 test="29/Mar/2004"
  2.       2 jour=$(echo $test | cut -d "/" -f1)
  3.       3 mois=$(echo $test | cut -d "/" -f2)
  4.       4 annee==$(echo $test | cut -d "/" -f3)
  5.       5
  6.       6 case $mois in
  7.       7   Jan) mois="01";;
  8.       8   Mar) mois="03";;
  9.       9 esac
  10.      10
  11.      11 echo "j: ${jour} m: ${mois} a:${annee}"


 
ca aussi ca marche


---------------
Le droit à la différence s'arrête là où ça commence à m'emmerder sérieusement.
n°479432
mytoo
Posté le 14-05-2004 à 19:58:46  profilanswer
 

merci zaib3k çà fonctionne (au pire j'aurais utiliser la fonction exit
 
merci à tous


---------------
La connaissance se partage
n°479433
Klaimant
?
Posté le 14-05-2004 à 20:01:19  profilanswer
 

zaib3k a écrit :

Code :
  1. 1 test="29/Mar/2004"
  2.       2 jour=$(echo $test | cut -d "/" -f1)
  3.       3 mois=$(echo $test | cut -d "/" -f2)
  4.       4 annee==$(echo $test | cut -d "/" -f3)
  5.       5
  6.       6 case $mois in
  7.       7   Jan) mois="01";;
  8.       8   Mar) mois="03";;
  9.       9 esac
  10.      10
  11.      11 echo "j: ${jour} m: ${mois} a:${annee}"


 
ca aussi ca marche


 
Pourquoi des acolades ?


---------------
Fais le ou ne le fais pas, mais il n'y a pas d'essai !!!
n°479435
mytoo
Posté le 14-05-2004 à 20:09:37  profilanswer
 

Dernier question comment je fais pour transformer
en variable tout accroché?date="$annne.$mois.$jour"
sans les points?
 
pour par exemple
echo "test" >fichier.$date.log
 
 
non rien je suppose que çà focntionne  :p  
date="${annne}${mois}${jour}"
echo "test" >fichier.$date.log


Message édité par mytoo le 14-05-2004 à 20:14:50

---------------
La connaissance se partage
n°479436
mytoo
Posté le 14-05-2004 à 20:10:31  profilanswer
 

Klaimant a écrit :

Pourquoi des acolades ?


ben je sais pas , c'est un reflexe que j'ai pris
 
comment tu aurais fait pour çà:
date="${annne}${mois}${jour}"


Message édité par mytoo le 14-05-2004 à 20:33:15

---------------
La connaissance se partage
n°479444
Zaib3k
Posté le 14-05-2004 à 20:28:20  profilanswer
 

Klaimant a écrit :

Pourquoi des acolades ?


 
copié/collé de mytoo :D


---------------
Le droit à la différence s'arrête là où ça commence à m'emmerder sérieusement.
n°479447
Klaimant
?
Posté le 14-05-2004 à 20:32:37  profilanswer
 

zaib3k a écrit :

copié/collé de mytoo :D


 
moi j'en mets jamais c'est pour ca :P


---------------
Fais le ou ne le fais pas, mais il n'y a pas d'essai !!!
n°479448
mytoo
Posté le 14-05-2004 à 20:33:43  profilanswer
 

VOUS POUVEZ FERMER CE SUJET


---------------
La connaissance se partage
n°479544
burgergold
5$? va chez l'diable!
Posté le 15-05-2004 à 00:27:33  profilanswer
 

on ferme jamais un sujet sauf si c'est un troll
 
sinon pk tant de haine envers perl? ca permet de faire tellement de chose sympathique :D


---------------
http://www.boincstats.com/signature/user_664861.gif
n°479663
mytoo
Posté le 15-05-2004 à 11:39:21  profilanswer
 

Burgergold a écrit :

on ferme jamais un sujet sauf si c'est un troll
 
sinon pk tant de haine envers perl? ca permet de faire tellement de chose sympathique :D


ha oki, vu que m'on problème était résolu, dois-je modifié mon titre alors?
 
 :D pour perl, non, non , mais disons que je préfère me contenter de bash pour le moment
mais est-ce que perl et vraiment beaucoup mieux? où est-il utilisé surtout pour le web?


---------------
La connaissance se partage
n°479719
burgergold
5$? va chez l'diable!
Posté le 15-05-2004 à 13:26:55  profilanswer
 

sérieusement je vois pas beaucoup d'avantage à perl pour le web
 
par contre, pour n'importe scrit d'administration, sous unix ou windows, je trouve ca extrêmement puissant. Les librairies t'évite justement à faire des passe passe comme tu as du le faire tout a l'heure. La communauté est très vivante.


---------------
http://www.boincstats.com/signature/user_664861.gif
n°479741
philou_a7
\_o< coin ! >o_/
Posté le 15-05-2004 à 14:13:39  profilanswer
 

echo $DATEACONVERTIR | tr -d '/' | xargs date +"%Y%m%d" -d
 
ca allait beaucoup plus vite que perl ou bash :D
man date ;)

n°959577
Bu1979
Posté le 01-10-2007 à 17:09:00  profilanswer
 

Bonjour
 
Je reviens sur cet ancien Topic, car j'aimerai connaitre les commandes pour obtenir l'exact oppose:
C'est a dire de passer d'un format comme celui-ci:  
aaaammjj
A celui ci:
jj/mm/aaaa
 
Cependant j'ai un souci supplemetaire, c'est que mon fichier d'Input contient ce format "aaaammjj", et mon fichier d'output doit contenir celui la "jj/mm/aaaa", c'est a dire que ce n'est pas qu'une valeur a tranformer mais bien plusieurs.
 
Exemple:  
 
233256.00;25663325.00;PKR;20070920;
5153743.43;4831391.53;HKD;20070921;
5153743.43;4831391.53;HUF;20070922;
 
a transformer en:
233256.00;25663325.00;PKR;20/09/2007;
5153743.43;4831391.53;HKD;21/09/2007;
5153743.43;4831391.53;HUF;22/09/2007;
 
Merci pour votre aide

mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Linux et OS Alternatifs

  [SCRIPT SHELL] Convertion de date

 

Sujets relatifs
[script shell linux] demande d'aideScript TCL pour eggdrop
Lancement d'un script: n'afficher que STDERRScript pour config "intelligente" du LAN
Mon script iptable (surement des erreurs)[Hotplug] pourquoi lance-t-il mon script plusieurs fois ? [Résolu]
Comment faire un script de connexion ADSL ?lancement d'un script au demarrage
Aide pour un script (decortication de fichier) 
Plus de sujets relatifs à : [SCRIPT SHELL] Convertion de date


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR