• Publicidad

Problemas sustituyendo el carácter '

¿Apenas comienzas con Perl? En este foro podrás encontrar y hacer preguntas básicas de Perl con respuestas aptas a tu nivel.

Problemas sustituyendo el carácter '

Notapor Alfumao » 2014-12-12 05:13 @259

Buenos días.

Me encuentro con un problema que no sé explicar a la hora de sustituir el carácter ' por un espacio en blanco dentro de un archivo de texto.

Aquí os dejo el código que uso:

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. perl -pi -e 's/\'//g' archivo.txt
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4


No sólo no funciona sino que tras ejecutarlo, en la consola en vez de aparacer al principio de línea
Sintáxis: [ Descargar ] [ Ocultar ]
Using bash Syntax Highlighting
  1. [user@ laptop]$
Coloreado en 0.003 segundos, usando GeSHi 1.0.8.4
me aparece el símbolo
Sintáxis: [ Descargar ] [ Ocultar ]
Using bash Syntax Highlighting
  1. >
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4
y no puedo recuperar el estado normal (
Sintáxis: [ Descargar ] [ Ocultar ]
Using bash Syntax Highlighting
  1. [user@ laptop]$
Coloreado en 0.004 segundos, usando GeSHi 1.0.8.4
) sin cerrar la consola...

A ver si me podéis explicar cómo escapar adecuadamente el símbolo ' para evitar este problema.

Un saludo.
Última edición por explorer el 2014-12-12 06:17 @303, editado 1 vez en total
Razón: caracter => carácter; dias => días; linea => línea; como => cómo;
Alfumao
Perlero nuevo
Perlero nuevo
 
Mensajes: 178
Registrado: 2009-12-10 11:20 @514

Publicidad

Re: Problemas sustituyendo el carácter '

Notapor explorer » 2014-12-12 07:05 @337

El ángulo '>' sale porque el shell cree que el comando no está terminado (está viendo un número impar de comillas), por lo que saca el "carácter de continuación" de comando, que por defecto es el ángulo.

Si te quedas atascado ahí, para salir te vale con pulsar Control-C.

Se puede resolver de varias formas. La más inmediata sería no usar la comilla y poner en su lugar el código hexadecimal de la comilla:
Sintáxis: [ Descargar ] [ Ocultar ]
Using bash Syntax Highlighting
  1. perl -pi -e 's/\x27//g' archivo.txt
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4

Otra forma es aislando la comilla (cuidado que hay truco :wink: ):
Sintáxis: [ Descargar ] [ Ocultar ]
Using bash Syntax Highlighting
  1. perl -pi -e 's/'"'"'//g' archivo.txt
Coloreado en 0.003 segundos, usando GeSHi 1.0.8.4

Finalmente, otra solución es escapando la comilla:
Sintáxis: [ Descargar ] [ Ocultar ]
Using bash Syntax Highlighting
  1. perl -pi -e "s/\'//g" archivo.txt
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4

No te funcionaba tu escapado porque lo estabas haciendo entre comillas simples, y el shell lo toma como una cadena literal. En cambio, haciéndolo entre comillas dobles, se interpreta su contenido, y entonces podemos escapar la comilla.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Problemas sustituyendo el carácter '

Notapor Alfumao » 2014-12-15 04:14 @218

¡Muchas gracias, explorer!

Asunto solucionado.

:wink:
Alfumao
Perlero nuevo
Perlero nuevo
 
Mensajes: 178
Registrado: 2009-12-10 11:20 @514


Volver a Básico

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 25 invitados