Eliminación de espacio en shell bash

Resuelto
jean -  
 jean -
Bonjour,

tiene en un script una variable que contiene una lista de nombres y apellidos.
Pero no puede eliminar los primeros espacios al inicio de la línea.
Cuando uso sed 's/ //g' elimino los espacios entre las palabras, pero no los 2 espacios al principio.
¿Cómo puedo hacer?

Con cat -A aparece el código "M-BM- M-BM- " en el lugar de los espacios molestos.

Le agradezco.

6 respuestas

  1. jipicy Mensajes publicados 40842 Fecha de registro   Estado Moderador Última intervención   4 898
     
    Hola,

    ¡Mira este post!
    0
  2. jean
     
    Je vois bien la similitude du problème, mais pourriez-vous m'expliquer la regexp suivante (car je suppose que c'est avec ça que je devrais résoudre mon problème) :

    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 Mensajes publicados 40842 Fecha de registro   Estado Moderador Última intervención   4 898
     
    Si solo hay que eliminar los 2 espacios al inicio de la línea, la siguiente sintaxis debería ser suficiente:

    sed 's/^\xC2\xA0//' archivo
    0
  4. jean
     
    En efecto, con sed 's/^\xC2\xA0\xC2\xA0//' el archivo funcionó.
    ¿A qué corresponde el xC2\xA0? ¿Cómo sabemos que es este código el que corresponde?

    Gracias de todos modos.
    0
  5. jipicy Mensajes publicados 40842 Fecha de registro   Estado Moderador Última intervención   4 898
     
    En realidad "\xC2\xA0" es la notación hexadecimal del código ASCII (\302\240) correspondiente a la secuencia de carácter no imprimible "M-BM- M-BM- ".

    Basta con mostrar tu archivo con "cat -A" o "sed -n l" o incluso con un editor hexadecimal como "hexedit" o "od" para ver este código. Después solo hay que buscar una tabla en internet para la correspondencia...
    0
  6. jean
     
    Muy bien. Gracias por la información, ¡podré arreglármelas a partir de ahora! :)
    0