PB Suppression d'espace

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   -
Bonjour,

Me revoilà avec une ligne de commande que certain ici mon aidé à l'élaborer pour supprimer les blancs dans des champs d'un fichier plat.
Mon problème c'est que cette ligne de commande laisse parfois des espaces et je sais pas trop pourquoi ??

voici mon fichier au départ :

0000290;20130401;COTIPAT2;      1296,86;R  
0000290;20130401;HMENS   ;       151,67;R  
0000290;20130401;SALBRUT ;      2866,78;R  

voici mon fichier après :

0000290;20130401;COTIPAT2;1296,86;R 
0000290;20130401;HMENS;151,67;R     
0000290;20130401;SALBRUT ;2866,78;R 


Sur la 3eme ligne il laisse un espace après le "SALBRUT"

la commande est la suivante :

cat $SIGACS/file/PSPAPREM.P | \                        
sed 's/ \{2,\}//g' >> $SIGACS/file/montant-Premium.txt 


Encore une fois, merci d'avance.



A voir également:

3 réponses

zipe31 Messages postés 36402 Date d'inscription   Statut Contributeur Dernière intervention   6 429
 
Salut,

C'est normal ton expression cherche au minimum 2 espaces ou plus et dans ta 3e ligne il n'y en a qu'un après "SALBRUT" ;-\

Essaye comme ça :

 sed 's/ \+//g'

0
JsuisNul Messages postés 125 Date d'inscription   Statut Membre Dernière intervention   1
 
j'ai essayer ta solution Zipe31 mais ça ne fonctionne pas voila le résultat :

0000290;20130401;COTIPAT2;      1296,86;R  
0000290;20130401;HMENS   ;       151,67;R  
0000290;20130401;SALBRUT ;      2866,78;R
0
zipe31 Messages postés 36402 Date d'inscription   Statut Contributeur Dernière intervention   6 429
 
Bizarre, chez moi ça marche bien et avec plusieurs solutions...

$ cat plop 
0000290;20130401;COTIPAT2;      1296,86;R  
0000290;20130401;HMENS   ;       151,67;R  
0000290;20130401;SALBRUT ;      2866,78;R

$ sed 's/ \+//g' plop 
0000290;20130401;COTIPAT2;1296,86;R
0000290;20130401;HMENS;151,67;R
0000290;20130401;SALBRUT;2866,78;R

$ sed 's/\s\+//g' plop 
0000290;20130401;COTIPAT2;1296,86;R
0000290;20130401;HMENS;151,67;R
0000290;20130401;SALBRUT;2866,78;R

$ sed 's/ \{1,\}//g' plop 
0000290;20130401;COTIPAT2;1296,86;R
0000290;20130401;HMENS;151,67;R
0000290;20130401;SALBRUT;2866,78;R

$ tr -d ' ' < plop 
0000290;20130401;COTIPAT2;1296,86;R
0000290;20130401;HMENS;151,67;R
0000290;20130401;SALBRUT;2866,78;R

$

Sue quel système es-tu ?
Quelle version de "sed" ?
Ton fichier est sous quel format (Unix ou Windows) ?
0
JsuisNul Messages postés 125 Date d'inscription   Statut Membre Dernière intervention   1
 
Bonjour à Tous,

Bon j'ai essayé les méthodes et la n°4 fonctionne impéc !! ;-)
et pour te répondre à ta question Zip31 :

uname -a => AIX u203esg2 3 5 000EC30AD400
echo $SHELL => /usr/bin/ksh

Sur d'autre post on avait déjà vu qu'avec ma version certain commande n'était pas reconnu ou en tout cas réagissais pas forcement comme voulu ( cas du "uniq").

En tout cas merci encore à vous tous !!!
bonne semaine :-)
0