|
|
|
|
Posté par
Bu1979, le lundi 1 octobre 2007 à 17:36:52Configuration: Windows XP Internet Explorer 6.0
Est-ce que cette commande :
awk -F ';' '{yyyy=`cut -c 1-4 $4`; mm=`cut -c 5-6 $4`; dd=`cut -c 7-8 $4`; print dd "/" mm "/" yyyy}' /fichier/input t'affiche les dates au format voulu ? |
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?
Car je pensais rajouter: cat "Fichier_Input" | awk -F ';' '{yyyy=`cut -c 1-4 $4`; mm=`cut -c 5-6 $4`; dd=`cut -c 7-8 $4`; print dd "/" mm "/" yyyy}' > fichier_output mais ca ne marche pas.. erreur de syntaxe apparemment |
Salut,
Avant toute chose fais une copie de sauvegarde de ton fichier. : 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 |
Merci a vous deux, cependant il faut aussi que je vous precise que je travaille sur Solaris SUN, en ksh, et que je pense qu'il y a un souci de syntaxe avec les commandes sed, et date.
J'ai une erreur sur les options, car -d n'existe pas et -i non plus. |
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-
Prends la commande de lami20j et passe par un fichier temporaire alors : 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é. |
Super Lami ca fonctionne presque, a une exception pres:
Dans ce cas: 4569871357.64;9936483272.20;GBP;20070921;F Lorsque l'on a une donnee supplementaire derriere la date, cela ne la convertie pas... |
Lorsque l'on a une donnee supplementaire derriere la date, cela ne la convertie pas...
et si on a deux, trois, quatre, etc... il faut préciser la structure de ton fichier pour donner une solution exacte si la date se trouve toujours dans le 4 champs(le séparateur ;) alors fait comme ça
$ 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 |
Dsl j'aurai du preciser la syntaxe exacte.
Merci bcp Lami et les autres, cela fontionne tres bien. |
De rien ;-)
lami20j |
| 22/08 16h19 | [Excel] Ajouter une date fixe dans une cellule en 2 touches | Excel |
| 21/03 16h48 | Vérifier le format d'une date en PHP | PHP |
| 05/05 18h25 | Formulaires en ligne - Les champs de saisie | Ergonomie |
| 17/01 18h20 | [Virus] Kit de désinfection pour éradiquer W32/Beagle@mm (Bagle) | Virus |
| 12/06 03h04 | Créer rapidement un planning de congés simple [Excel] | Bureautique |
| 14/07 11h16 | Convertir date : jour jj-mois-aaaa | 6 |
| 11/08 13h35 | Excel Date 'lundi jj/mm/aaaa' | 3 |
| 14/07 11h35 | Excel : Convertir date décimale en MM/JJ/HH/m | 5 |
| 20/05 11h02 | Récupérer une date dans mysql jj/mm/aaaa | 7 |
![]() | MTV Video Converter - Le programme MTV Video Converter est un convertisseur vidéo vers le format MTV acceptant les formats d'entrée suivants : ... | Catégorie: Conversion Licence: Freeware/gratuit |
![]() | Mobile 3GP Converter - Le programme "Mobile 3GP Converter" permet de convertir des fichiers au format 3GP (extension *.3gp ou *.3g2) vers un... | Catégorie: Edition vidéo Licence: Freeware/gratuit |
![]() | Mmm Free - Vous avez remarqué ? Plus vous installez de logiciels, plus le menu contextuel "clic-droit" devient encombré. Mmm Free... | Catégorie: Optimisation Licence: Freeware/gratuit |
![]() | AMV Convert Tool - Le package MP3 Player Utilities contient notamment un lecteur permettant de lire les fichiers au format AMV ainsi qu'un... | Catégorie: Edition vidéo Licence: Freeware/gratuit |
![]() | A-Data My Flash | Catégorie: Carte Mémoire / Clé USB | |
![]() | A-Data My Flash | Catégorie: Carte Mémoire / Clé USB | |
![]() | Logitech MM32 2.0 Portable | Catégorie: Enceintes PC | 44.40 € Amazon.fr |
![]() | Philips MMS430 2.1 | Catégorie: Enceintes PC | 53.10 € La Boutique Du Net |