sed no reconoce letras acentuadas en las expresiones regulares [Solucionado]

Imagen de xxjcaxx
0 puntos

Buenas.

Estoy intentando hacer un sed que elimine todas las letras a partir de un paréntesis:

sed 's/).*/)/' < lista.txt

El problema es que el .* reconoce cualquier caracter menos los acentuados o las ñ y por tanto no elimina nada de las líneas que tengan una tilde después de un paréntesis.

Otras alternativas probadas sin éxito:

sed 's/\).*/)/'
sed 's/).*$/)/'

Hay alguna manera de decirle al punto que también puede ser una tilde?

Gracias.

Imagen de selerto
+1
0
-1

Hola amigo,

Curioso problema, he probado:

sed 's/).*/)/' < lista.txt

A mí sí me elimina todo, acentos, eñes, y lo que le meta. Tu problema tiene que ser otro.

+1
0
-1
Imagen de fpslinux
+1
0
-1

Puede ser problema de locales, mira si lo tienes instalado como utf8 o iso-8859-1

+1
0
-1
Imagen de xxjcaxx
+1
0
-1

Si debe ser algún problema de idiomas. No sé aun lo que pasa, pero lo he solucionado así:

$ LANG=C sed 's/).*/)/' < lista.txt

De esta manera sí lo acepta todo. Además, he visto que si hago un grep buscando un rango de mayúsculas o minúsculas no funciona bien a no ser que ponga lo de LANG=C delante, ya que selecciona líneas que tienen letras, pero no como yo quiero.

Saludos y gracias.

+1
0
-1
Imagen de xxjcaxx
+1
0
-1

Por lo visto, mi configuración es para UTF-8 y el fichero en cuestión estaba en ISO-8859-15.
Para evitarme problemas he usado esta orden:

iconv -f iso-8859-15 -t utf-8 lista.txt > listautf8.txt

Así tengo para siempre el fichero con la codificación adecuada.

+1
0
-1