Suppression d'espace en shell bash

Résolu
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

6 réponses

  1. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    Salut,

    Voir ce post !
    0
  2. jean
     
    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}'
    0
  3. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    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
    0
  4. jean
     
    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
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    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...
    0
  7. jean
     
    Très bien . Merci pour les informations, je pourrai me débrouiller dorénavant :)
    0