Suppression d'espace en shell bash
Résolu
jean
-
jean -
jean -
Bonjour,
j'ai dans un script une variable qui contient une liste de prénoms et de noms.
Mais je n'arrive pas à supprimer les premiers espaces de début de ligne.
Quand je fais sed 's/ //g' je supprime les espaces entre les mots mais pas les 2 espaces du début.
Comment je peux faire ?
avec cat -A j'ai le code "M-BM- M-BM- " qui apparait a l'endroit des espaces génants
En vous remerciant
j'ai dans un script une variable qui contient une liste de prénoms et de noms.
Mais je n'arrive pas à supprimer les premiers espaces de début de ligne.
Quand je fais sed 's/ //g' je supprime les espaces entre les mots mais pas les 2 espaces du début.
Comment je peux faire ?
avec cat -A j'ai le code "M-BM- M-BM- " qui apparait a l'endroit des espaces génants
En vous remerciant
6 réponses
-
-
je vois bien la similitude du probleme, mais pourriez vous m'expliquer la regexp suivante ( car je suppose que c'est avec ca que je devrais resoudre mon pb ) :
sed '/^\xC2\xA0$/{:z;N; /\n\xC2\xA0$/!b; s/^\xC2\xA0\n\xC2\xA0\n\xC2\xA0\n\xC2\xA0$/#/;T z}' -
S'il n'y a que les 2 espaces en début de ligne à supprimer, la syntaxe suivante devrait suffire :
sed 's/^\xC2\xA0//' fichier
-
EN effet, avec sed 's/^\xC2\xA0\xC2\xA0//' fichier cela a fonctionné.
A quoi correspond le xC2\xA0 ? comment sait on que c'est ce code ci qui correspond ?
merci en tout cas -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
En fait "\xC2\xA0" c'est la notation en hexadécimal du code ASCII (\302\240) correspondant à la séquence de caractère non-imprimable "M-BM- M-BM- ".
Il suffit d'afficher ton fichier avec "cat -A" ou "sed -n l" ou encore avec un éditeur hexadecimal comme "hexedit" ou "od" pour voir ce code. Après il suffit de chercher un tableau sur le net pour la correspondance... -