Supprimer les décimales sur un champs numérique dans une ligne
Résolu
JsuisNul
Messages postés
125
Date d'inscription
Statut
Membre
Dernière intervention
-
JsuisNul Messages postés 125 Date d'inscription Statut Membre Dernière intervention -
JsuisNul Messages postés 125 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'ai le fichier suivant et j'aimerai enlever les décimales sur un champ bien précis mais que sur certaine ligne à savoir les ligne avec le "SALBASE":
fichier :
00100290;20130101;COTIPAT2;1296.86;R
00100290;20130101;HMENS;151.67;R
00100290;20130101;SALBRUT;2866.78;R
00100290;20130101;SALNET;2199.54;R
00100290;20130101;PRIMANN;0.00;R
00100290;20130101;PRIMMENS;369.87;R
00100290;20130101;SALBASE;2249.00;R
00100290;20130101;COTIPAT;1396.05;R
00100290;20130101;PRIMANC;247.91;R
04000303;20130101;COTIPAT2;1368.45;R
04000303;20130101;HMENS;151.67;R
04000303;20130101;SALBRUT;3025.00;R
04000303;20130101;SALNET;2320.91;R
04000303;20130101;PRIMANN;0.00;R
04000303;20130101;PRIMMENS;0.00;R
04000303;20130101;SALBASE;2750.00;R
04000303;20130101;COTIPAT;1473.11;R
04000303;20130101;PRIMANC;275.00;R
00004027;20130101;COTIPAT2;1161.78;R
00004027;20130101;HMENS;151.67;R
00004027;20130101;SALBRUT;2568.16;R
00004027;20130101;SALNET;1970.42;R
00004027;20130101;PRIMANN;0.00;R
00004027;20130101;PRIMMENS;320.77;R
00004027;20130101;SALBASE;2027.00;R
00004027;20130101;COTIPAT;1250.64;R
00004027;20130101;PRIMANC;220.39;R
Resultat souhaité :
00100290;20130101;COTIPAT2;1296.86;R
00100290;20130101;HMENS;151.67;R
00100290;20130101;SALBRUT;2866.78;R
00100290;20130101;SALNET;2199.54;R
00100290;20130101;PRIMANN;0.00;R
00100290;20130101;PRIMMENS;369.87;R
00100290;20130101;SALBASE;2249;R
00100290;20130101;COTIPAT;1396.05;R
00100290;20130101;PRIMANC;247.91;R
04000303;20130101;COTIPAT2;1368.45;R
04000303;20130101;HMENS;151.67;R
04000303;20130101;SALBRUT;3025.00;R
04000303;20130101;SALNET;2320.91;R
04000303;20130101;PRIMANN;0.00;R
04000303;20130101;PRIMMENS;0.00;R
04000303;20130101;SALBASE;2750;R
04000303;20130101;COTIPAT;1473.11;R
04000303;20130101;PRIMANC;275.00;R
00004027;20130101;COTIPAT2;1161.78;R
00004027;20130101;HMENS;151.67;R
00004027;20130101;SALBRUT;2568.16;R
00004027;20130101;SALNET;1970.42;R
00004027;20130101;PRIMANN;0.00;R
00004027;20130101;PRIMMENS;320.77;R
00004027;20130101;SALBASE;2027;R
00004027;20130101;COTIPAT;1250.64;R
00004027;20130101;PRIMANC;220.39;R
Merci d'd'avance pour votre aide ;-)
J'ai le fichier suivant et j'aimerai enlever les décimales sur un champ bien précis mais que sur certaine ligne à savoir les ligne avec le "SALBASE":
fichier :
00100290;20130101;COTIPAT2;1296.86;R
00100290;20130101;HMENS;151.67;R
00100290;20130101;SALBRUT;2866.78;R
00100290;20130101;SALNET;2199.54;R
00100290;20130101;PRIMANN;0.00;R
00100290;20130101;PRIMMENS;369.87;R
00100290;20130101;SALBASE;2249.00;R
00100290;20130101;COTIPAT;1396.05;R
00100290;20130101;PRIMANC;247.91;R
04000303;20130101;COTIPAT2;1368.45;R
04000303;20130101;HMENS;151.67;R
04000303;20130101;SALBRUT;3025.00;R
04000303;20130101;SALNET;2320.91;R
04000303;20130101;PRIMANN;0.00;R
04000303;20130101;PRIMMENS;0.00;R
04000303;20130101;SALBASE;2750.00;R
04000303;20130101;COTIPAT;1473.11;R
04000303;20130101;PRIMANC;275.00;R
00004027;20130101;COTIPAT2;1161.78;R
00004027;20130101;HMENS;151.67;R
00004027;20130101;SALBRUT;2568.16;R
00004027;20130101;SALNET;1970.42;R
00004027;20130101;PRIMANN;0.00;R
00004027;20130101;PRIMMENS;320.77;R
00004027;20130101;SALBASE;2027.00;R
00004027;20130101;COTIPAT;1250.64;R
00004027;20130101;PRIMANC;220.39;R
Resultat souhaité :
00100290;20130101;COTIPAT2;1296.86;R
00100290;20130101;HMENS;151.67;R
00100290;20130101;SALBRUT;2866.78;R
00100290;20130101;SALNET;2199.54;R
00100290;20130101;PRIMANN;0.00;R
00100290;20130101;PRIMMENS;369.87;R
00100290;20130101;SALBASE;2249;R
00100290;20130101;COTIPAT;1396.05;R
00100290;20130101;PRIMANC;247.91;R
04000303;20130101;COTIPAT2;1368.45;R
04000303;20130101;HMENS;151.67;R
04000303;20130101;SALBRUT;3025.00;R
04000303;20130101;SALNET;2320.91;R
04000303;20130101;PRIMANN;0.00;R
04000303;20130101;PRIMMENS;0.00;R
04000303;20130101;SALBASE;2750;R
04000303;20130101;COTIPAT;1473.11;R
04000303;20130101;PRIMANC;275.00;R
00004027;20130101;COTIPAT2;1161.78;R
00004027;20130101;HMENS;151.67;R
00004027;20130101;SALBRUT;2568.16;R
00004027;20130101;SALNET;1970.42;R
00004027;20130101;PRIMANN;0.00;R
00004027;20130101;PRIMMENS;320.77;R
00004027;20130101;SALBASE;2027;R
00004027;20130101;COTIPAT;1250.64;R
00004027;20130101;PRIMANC;220.39;R
Merci d'd'avance pour votre aide ;-)
A voir également:
- Supprimer les décimales sur un champs numérique dans une ligne
- Supprimer rond bleu whatsapp - Guide
- Comment supprimer une page sur word - Guide
- Comment supprimer une application préinstallée sur android - Guide
- Partager photos en ligne - Guide
- Impossible de supprimer un fichier - Guide
4 réponses
Salut,
Rajouter l'option "-i.bak" pour un remplacement direct dans le fichier avec une sauvegarde en ".bak" en prime ;-))
$ cat plop 00100290;20130101;COTIPAT2;1296.86;R 00100290;20130101;HMENS;151.67;R 00100290;20130101;SALBRUT;2866.78;R 00100290;20130101;SALNET;2199.54;R 00100290;20130101;PRIMANN;0.00;R 00100290;20130101;PRIMMENS;369.87;R 00100290;20130101;SALBASE;2249.00;R 00100290;20130101;COTIPAT;1396.05;R 00100290;20130101;PRIMANC;247.91;R 04000303;20130101;COTIPAT2;1368.45;R 04000303;20130101;HMENS;151.67;R 04000303;20130101;SALBRUT;3025.00;R 04000303;20130101;SALNET;2320.91;R 04000303;20130101;PRIMANN;0.00;R 04000303;20130101;PRIMMENS;0.00;R 04000303;20130101;SALBASE;2750.00;R 04000303;20130101;COTIPAT;1473.11;R 04000303;20130101;PRIMANC;275.00;R 00004027;20130101;COTIPAT2;1161.78;R 00004027;20130101;HMENS;151.67;R 00004027;20130101;SALBRUT;2568.16;R 00004027;20130101;SALNET;1970.42;R 00004027;20130101;PRIMANN;0.00;R 00004027;20130101;PRIMMENS;320.77;R 00004027;20130101;SALBASE;2027.00;R 00004027;20130101;COTIPAT;1250.64;R 00004027;20130101;PRIMANC;220.39;R $ sed '/SALBASE/{s/\.[[:digit:]]\+//}' plop 00100290;20130101;COTIPAT2;1296.86;R 00100290;20130101;HMENS;151.67;R 00100290;20130101;SALBRUT;2866.78;R 00100290;20130101;SALNET;2199.54;R 00100290;20130101;PRIMANN;0.00;R 00100290;20130101;PRIMMENS;369.87;R 00100290;20130101;SALBASE;2249;R 00100290;20130101;COTIPAT;1396.05;R 00100290;20130101;PRIMANC;247.91;R 04000303;20130101;COTIPAT2;1368.45;R 04000303;20130101;HMENS;151.67;R 04000303;20130101;SALBRUT;3025.00;R 04000303;20130101;SALNET;2320.91;R 04000303;20130101;PRIMANN;0.00;R 04000303;20130101;PRIMMENS;0.00;R 04000303;20130101;SALBASE;2750;R 04000303;20130101;COTIPAT;1473.11;R 04000303;20130101;PRIMANC;275.00;R 00004027;20130101;COTIPAT2;1161.78;R 00004027;20130101;HMENS;151.67;R 00004027;20130101;SALBRUT;2568.16;R 00004027;20130101;SALNET;1970.42;R 00004027;20130101;PRIMANN;0.00;R 00004027;20130101;PRIMMENS;320.77;R 00004027;20130101;SALBASE;2027;R 00004027;20130101;COTIPAT;1250.64;R 00004027;20130101;PRIMANC;220.39;R
Rajouter l'option "-i.bak" pour un remplacement direct dans le fichier avec une sauvegarde en ".bak" en prime ;-))
sed -i.bak '/SALBASE/{s/\.[[:digit:]]\+//}' plop
Bonjour,
Merci pour ta réponse.
J'ai testé et j'ai ce message d'erreur :
sed: Function /SALBASE/{s/\.[[:digit:]]\+//} cannot be parsed.
Merci pour ta réponse.
J'ai testé et j'ai ce message d'erreur :
sed: Function /SALBASE/{s/\.[[:digit:]]\+//} cannot be parsed.
Voici pour le système :
uname -a => AIX u203esg2 3 5 000EC30AD400
echo $SHELL => /usr/bin/ksh
j'essaie le awk et je te dis.
uname -a => AIX u203esg2 3 5 000EC30AD400
echo $SHELL => /usr/bin/ksh
j'essaie le awk et je te dis.