|
|
|
|
Bonjour,
J'aimerai connaitre les commandes en Shell Script (ksh)
pour 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
Configuration: Windows XP Internet Explorer 6.0
La commande a l'air correcte, mais quand tu mets /fichier/input, c'est le fichier dans lequel il va lire les renseignements ou il va les ecrire?
|
Salut,
while read line
do DATE=$(awk -F";" '{ print $4 }' <<<$line)
NEWDATE=$(date -d "$DATE" '+%d/%m/%Y')
sed -i "s#$DATE#$NEWDATE#" ton_fichier ; done < ton_fichierCe qui donne :[tmpfs]$ cat plop
233256.00;25663325.00;PKR;20070920;
5153743.43;4831391.53;HKD;20070921;
5153743.43;4831391.53;HUF;20070922;
[tmpfs]$ while read line; do DATE=$(awk -F";" '{ print $4 }' <<<$line); NEWDATE=$(date -d "$DATE" '+%d/%m/%Y'); sed -i "s#$DATE#$NEWDATE#" plop ; done < plop
[tmpfs]$ cat plop
233256.00;25663325.00;PKR;20/09/2007;
5153743.43;4831391.53;HKD;21/09/2007;
5153743.43;4831391.53;HUF;22/09/2007;
[tmpfs]$;-))
Z'@+...che. JP : Zen, my Nuggets ! ;-) Le savoir n'est bon que s'il est partagé. |
Salut,
~/trash$ cat fichier
233256.00;25663325.00;PKR;20070920;
5153743.43;4831391.53;HKD;20070921;
5153743.43;4831391.53;HUF;20070922;
~/trash$ sed -i.orig 's/\(.*\)\([0-9]\{4\}\)\([0-9]\{2\}\)\([0-9]\{2\}\);$/\1\4\/\3\/\2/' fichier
~/trash$ cat fichier
233256.00;25663325.00;PKR;20/09/2007
5153743.43;4831391.53;HKD;21/09/2007
5153743.43;4831391.53;HUF;22/09/2007
~/trash$ cat fichier.orig
233256.00;25663325.00;PKR;20070920;
5153743.43;4831391.53;HKD;20070921;
5153743.43;4831391.53;HUF;20070922;ou
233256.00;25663325.00;PKR;20070920;
5153743.43;4831391.53;HKD;20070921;
5153743.43;4831391.53;HUF;20070922;
~/trash$ sed -i.orig -r 's/(.*)([0-9]{4})([0-9]{2})([0-9]{2});$/\1\4\/\3\/\2/' fichier
~/trash$ cat fichier
233256.00;25663325.00;PKR;20/09/2007
5153743.43;4831391.53;HKD;21/09/2007
5153743.43;4831391.53;HUF;22/09/2007
~/trash$ cat fichier.orig
233256.00;25663325.00;PKR;20070920;
5153743.43;4831391.53;HKD;20070921;
5153743.43;4831391.53;HUF;20070922;
lami20j |
Essaie $ cat fichier
233256.00;25663325.00;PKR;20070920;
5153743.43;4831391.53;HKD;20070921;
5153743.43;4831391.53;HUF;20070922;
$ sed 's/\(.*\)\([0-9]\{4\}\)\([0-9]\{2\}\)\([0-9]\{2\}\);$/\1\4\/\3\/\2/' fichier>resultat
$ cat resultat
233256.00;25663325.00;PKR;20/09/2007
5153743.43;4831391.53;HKD;21/09/2007
5153743.43;4831391.53;HUF;22/09/2007
lami20j@debian:~/trash$
lami20j |
Re-
sed 's/\(.*\)\([0-9]\{4\}\)\([0-9]\{2\}\)\([0-9]\{2\}\);$/\1\4\/\3\/\2;/' < fichier_entrée > fichier_sortie
mv fichier_sortie fichier_entrée;-))
Z'@+...che. JP : Zen, my Nuggets ! ;-) Le savoir n'est bon que s'il est partagé. |
Lorsque l'on a une donnee supplementaire derriere la date, cela ne la convertie pas...
$ cat fichier
233256.00;25663325.00;PKR;20070920;FFF
5153743.43;4831391.53;HKD;20070921;
5153743.43;4831391.53;HUF;20070922;
$ sed 's/\(.*;.*;.*;\)\([0-9]\{4\}\)\([0-9]\{2\}\)\([0-9]\{2\}\)/\1\4\/\3\/\2/' fichier>resultat
$ cat resultat
233256.00;25663325.00;PKR;20/09/2007;FFF
5153743.43;4831391.53;HKD;21/09/2007;
5153743.43;4831391.53;HUF;22/09/2007;
lami20j |