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

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

¡Mira este post!
0
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
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
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
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
jean
 
Muy bien. Gracias por la información, ¡podré arreglármelas a partir de ahora! :)
0