Suppression d'espace en shell bash

Résolu
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. 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
    1. Modérateur
      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
      1. 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
        1. Modérateur
          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
          1. Très bien . Merci pour les informations, je pourrai me débrouiller dorénavant :)
            0