• Publicidad

Cómo usar "sed" dentro de Perl

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

Cómo usar "sed" dentro de Perl

Notapor LeoSevilla » 2014-11-25 17:42 @779

Hola, muy buenas :)

Estoy haciendo un pequeño script en Perl para Xchat, y trato con un archivo de texto el cual quiero borrar una línea y dejar en el archivo todo lo demás. Si pruebo el comando en consola, perfecto, pero dentro de Perl en Xchat, no lo consigo.

Esto es parte del script:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. $borrar="25/11/14 Hola 3";
  2. system("sed -i\".bak\" '/$borrar/d' ~/.xchat2/addons/tareasdb.txt");
  3.  
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4

Estas son las líneas en tareasdb.txt
Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
25/11/14 Hola 3
25/11/14 hola 4
25/11/14 hola 5
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4

He probando cambiando $borrar="Hola 3"; por si fuera por las barras, pero nada, sigue sin funcionar. ¿Alguien me orienta?

Saludos. LeoSevilla.
Última edición por explorer el 2014-11-25 17:51 @785, editado 1 vez en total
Razón: linea => línea;
LeoSevilla
Perlero nuevo
Perlero nuevo
 
Mensajes: 24
Registrado: 2011-11-19 15:24 @683

Publicidad

Re: Cómo usar "sed" dentro de Perl

Notapor explorer » 2014-11-25 17:54 @787

Yo sustituiría '~' por la ruta completa al archivo.

Por otra parte... ¿por qué no lo haces todo en Perl? ;)

Y sí que hay que "escapar" las barras diagonales... Yo lo escribiría así:

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. system(qq(sed -i".bak" '/\Q$borrar\E/d' /home/usuario/.xchat2/addons/tareasdb.txt));
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14486
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Cómo usar "sed" dentro de Perl

Notapor LeoSevilla » 2014-11-25 18:31 @813

Gracias, explorer, me he decidido hacerlo todo en Perl. El motivo de hacerlo con sed era porque veía que me ahorraba muchas líneas :D Pero bueno, lo he intentado de todas las maneras y combinaciones y no hay manera.

Saludos. LeoSevilla.
LeoSevilla
Perlero nuevo
Perlero nuevo
 
Mensajes: 24
Registrado: 2011-11-19 15:24 @683


Volver a Básico

¿Quién está conectado?

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