Supprimer les espaces en debut ou fin d'un champs

Résolu/Fermé
JsuisNul
Messages postés
118
Date d'inscription
mercredi 13 février 2013
Statut
Membre
Dernière intervention
21 décembre 2021
- Modifié par jipicy le 5/03/2013 à 15:08
zipe31
Messages postés
36322
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
- 5 mars 2013 à 18:11
Bonjour a tous,

Me revoilà !!
comme vous le savez déjà j'ai un fichier du type :

mec3;jean;rue;CDD 
mec5;pierre;rue;CDI


en réalité, le fichier pour certain champs ressemble plutôt à cela :

mec3;jean;rue      ;CDD;      2; 
mec5;pierre;rue     ;CDI;      1;  


En gros j'ai des espace soit à gauche pour les champs numérique soit à droite sur les champs alphanumérique.
j'aimerai donc supprimer ces espaces.
j'ai tester :

sed 's/^\ *//;s/\ *$//'
mais ça ne supprime que les champs qui sont vraiment vide...
Merci pour votre aide ;-)


1 réponse

zipe31
Messages postés
36322
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 589
Modifié par zipe31 le 5/03/2013 à 15:12
Salut,

$ cat plop  
mec3;jean;rue      ;CDD;      2; 
mec5;pierre;rue     ;CDI;      1; 

$ sed 's/\s\+//g' plop  
mec3;jean;rue;CDD;2; 
mec5;pierre;rue;CDI;1; 

$ sed 's/  *//g' plop  
mec3;jean;rue;CDD;2; 
mec5;pierre;rue;CDI;1;

La seconde solution sera plus portable, mais attention il y a 2 espaces avant l'astérisque.

Zen my nuggets ;-)
Faites un geste pour l'environnement, fermez vos fenêtres et adoptez un manchot.
0
JsuisNul
Messages postés
118
Date d'inscription
mercredi 13 février 2013
Statut
Membre
Dernière intervention
21 décembre 2021
1
5 mars 2013 à 15:33
Toujours aussi vif !!! ;-)

J'ai tester et c'est presque ça mais c'est de ma faute.
j'ai oublié de préciser qu'il pouvait y avoir des champs avec des contenant des noms ou des numéro de téléphone comme
"chef de projet" "06 05 04 03 02"
les espaces entre les mots je veux bien les garder
0
zipe31
Messages postés
36322
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 589
5 mars 2013 à 15:37
sed 's/  \+//g'

Toujours avec 2 espaces devant "\+"
0
JsuisNul
Messages postés
118
Date d'inscription
mercredi 13 février 2013
Statut
Membre
Dernière intervention
21 décembre 2021
1
Modifié par JsuisNul le 5/03/2013 à 17:27
J'ai testé ta dernière solution mais ça n'a aucun effet... je dirai même que ça annule les effets de la commande précédente $ sed 's/ *//g' plop
0
zipe31
Messages postés
36322
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 589
5 mars 2013 à 17:28
$ cat plop
mec3;jean;rue "chef de projet" "06 05 04 03 02"      ;CDD;      2;
mec5;pierre;rue     ;CDI;      1;

$ sed 's/  \+//g' plop 
mec3;jean;rue "chef de projet" "06 05 04 03 02";CDD;2;
mec5;pierre;rue;CDI;1;

$ 
0
JsuisNul
Messages postés
118
Date d'inscription
mercredi 13 février 2013
Statut
Membre
Dernière intervention
21 décembre 2021
1
Modifié par JsuisNul le 5/03/2013 à 17:34
Mince t'es vraiment trop rapide !!!
petite précision car je crois avoir encore merdé dans mes explications. le fichier est plutôt comme celà :

mec3;jean;rue-------; chef de projet-------- ;06 05 04 03 02;CDD------;------ 2;
mec5;pierre;rue ;CDI; 1;

(les tirets représentant les espaces)
0