Eliminación de espacio en shell bash
Resuelto
jean
-
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.
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
-
-
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}' -
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
-
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. -
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... -