Bonjour,
Je cherche avec sed comment remplacer
AA;BB;CC;31-MAR-10;EE;FF
en
AA;BB;CC;20100331;EE;FF
J'ai essaye avec SED plusieurs choses sans succes
Merci d'avance
Philippe
Bonjour,
Je cherche avec sed comment remplacer
AA;BB;CC;31-MAR-10;EE;FF
en
AA;BB;CC;20100331;EE;FF
J'ai essaye avec SED plusieurs choses sans succes
Merci d'avance
Philippe
avec awk :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 BEGIN{ FS=";" OFS=";" } { gsub("MAR","03",$4); $4=gensub(/([0-9][0-9])-([0-9][0-9])-([0-9][0-9])/,"20\\3\\2\\1","",$4); print $0 ; }
Merci
Awk est considére comme "lourd" je vais encore cherché pour SED
Bonjour,
pourquoi sed ?
Code bash : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 $ IFS=';' read un deux trois soleil etc <<< "AA;BB;CC;31-MAR-10;EE;FF" $ echo "$un;$deux;$trois;$(date -d $soleil +%Y%m%d);$etc" AA;BB;CC;20100331;EE;FF $
Ok
Il ne me reste plus qu'a faire une boucle pour tous les mois de l'annee, et a inverser le 310310 en 100331 en plus
Merci
Pas besoin de faire une boucle, tu fais une liste de gsub et c'est parti
le gensub ne fonctionne pas !
Merci
Code : Sélectionner tout - Visualiser dans une fenêtre à part awk -F":" 'BEGIN{FS=";"OFS=";"}{ gsub("JAN","01",$10); gsub("MAR","03",$4);$4=gensub(/([0-9][0-9])-([0-9][0-9])-([0-9][0-9])/,"20\\3\\2\\1","",$4); print $0 ;}' /tmp/sed/databad.txt
Oui dans un script, en ligne de commande c'est ok
Mais j'ai deux colonnes a remplacer,et mes données ont ete deplace, je vais donc faire 2 awk
Merci
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 FR;CO;SDQ;CT;FR;D;AF;RT;DFIRME;CFART;01-JAN-10;31-DEC-10;25;24 FR;CO;SDQ;CT;FR;D;AF;RT;DFIRME;CFART;01-MAR-10;31-DEC-10;25;24
Partager