Caracteres acentuados en Unix
Publicado por Nieto (1 intervención) el 08/08/2007 13:22:03
Hola a todos,
Tengo el siguiente problema. Partiendo de un fichero XML en formato UTF-8, me he creado un script que sustituye una serie de carácteres por otros.
El script corre en un servidor LINUX ( NO Unix) y es tan simple como podeis ver a continuación:
#!/usr/bin/ksh
cat $1 | sed 's/é/e/g' > $2
cat $1 | sed 's/ö/o/g' > $2
cat $1 | sed 's/ë/e/g' > $2
cat $1 | sed 's/ü/u/g' > $2
cat $1 | sed 's/¿//g' > $2
cat $1 | sed 's/ / /g' > $2
cat $1 | sed 's/ó/o/g' > $2
cat $1 | sed 's/á/a/g' > $2
cat $1 | sed 's/ç/c/g' > $2
cat $1 | sed 's/õ/o/g' > $2
cat $1 | sed 's/ñ/n/g' > $2
cat $1 | sed 's/è/e/g' > $2
cat $1 | sed 's/í/i/g' > $2
cat $1 | sed 's/ô/o/g' > $2
Este script ( en LINUX) funciona correctamente.
El problema viene cuando lo paso a un servidor UNIX. El mismo script, abierto en UNIX resulta lo siguiente:
#!/usr/bin/ksh
cat $1 | sed 's/\351/e/g' > $2
cat $1 | sed 's/\366/o/g' > $2
cat $1 | sed 's/\353/e/g' > $2
cat $1 | sed 's/\374/u/g' > $2
cat $1 | sed 's/\277//g' > $2
cat $1 | sed 's/ / /g' > $2
cat $1 | sed 's/\363/o/g' > $2
cat $1 | sed 's/\341/a/g' > $2
cat $1 | sed 's/\347/c/g' > $2
cat $1 | sed 's/\365/o/g' > $2
cat $1 | sed 's/\361/n/g' > $2
cat $1 | sed 's/\350/e/g' > $2
cat $1 | sed 's/\355/i/g' > $2
cat $1 | sed 's/\364/o/g' > $2
Y al ejecutarlo, no funciona.
Mi pregunta es, como puedo hacer para poder escribir caracteres como é,ö,ë,ü,ó,á...... en el terminal Unix.?
Muchas gracias
Tengo el siguiente problema. Partiendo de un fichero XML en formato UTF-8, me he creado un script que sustituye una serie de carácteres por otros.
El script corre en un servidor LINUX ( NO Unix) y es tan simple como podeis ver a continuación:
#!/usr/bin/ksh
cat $1 | sed 's/é/e/g' > $2
cat $1 | sed 's/ö/o/g' > $2
cat $1 | sed 's/ë/e/g' > $2
cat $1 | sed 's/ü/u/g' > $2
cat $1 | sed 's/¿//g' > $2
cat $1 | sed 's/ / /g' > $2
cat $1 | sed 's/ó/o/g' > $2
cat $1 | sed 's/á/a/g' > $2
cat $1 | sed 's/ç/c/g' > $2
cat $1 | sed 's/õ/o/g' > $2
cat $1 | sed 's/ñ/n/g' > $2
cat $1 | sed 's/è/e/g' > $2
cat $1 | sed 's/í/i/g' > $2
cat $1 | sed 's/ô/o/g' > $2
Este script ( en LINUX) funciona correctamente.
El problema viene cuando lo paso a un servidor UNIX. El mismo script, abierto en UNIX resulta lo siguiente:
#!/usr/bin/ksh
cat $1 | sed 's/\351/e/g' > $2
cat $1 | sed 's/\366/o/g' > $2
cat $1 | sed 's/\353/e/g' > $2
cat $1 | sed 's/\374/u/g' > $2
cat $1 | sed 's/\277//g' > $2
cat $1 | sed 's/ / /g' > $2
cat $1 | sed 's/\363/o/g' > $2
cat $1 | sed 's/\341/a/g' > $2
cat $1 | sed 's/\347/c/g' > $2
cat $1 | sed 's/\365/o/g' > $2
cat $1 | sed 's/\361/n/g' > $2
cat $1 | sed 's/\350/e/g' > $2
cat $1 | sed 's/\355/i/g' > $2
cat $1 | sed 's/\364/o/g' > $2
Y al ejecutarlo, no funciona.
Mi pregunta es, como puedo hacer para poder escribir caracteres como é,ö,ë,ü,ó,á...... en el terminal Unix.?
Muchas gracias
Valora esta pregunta


0