• Publicidad

Formatear archivo separado por comas

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

Formatear archivo separado por comas

Notapor decaro6802 » 2010-05-21 13:28 @603

Hola, buenas tardes. Estoy tratando de realizar un programa para realizar el formateo de un archivo separado por comas, pero me manda el siguiente error:
Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
SCATQA$ ./prueba.pl Cat_CurInd.csv > Prueba.txt
./prueba.pl: syntax error at line 1 : `)' unexpected
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4

el programa es el siguiente:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
while (<>) {
        @linea=$_;
        chomp($linea);
        @Sal=split(",",$linea);
        printf ("%17s%30s%30s%30s%30s*\n", $Sal);
}
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4


El archivo viene de la siguiente manera:
Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
90_CHIHCB_09-2,Floating Amortizing Bond,CI_TIIE91,IRMXP_TIIE91,0
90_EDONL_03,Floating Amortizing Bond,CI_Cetes182_BI,IRMXP_Cetes_Sec_BI,0
90_EDONL_03-2,Floating Amortizing Bond,CI_Cetes182_BI,IRMXP_Cetes_Sec_BI,0
90_VRZCB_06,Floating Amortizing Bond,CI_TIIE91,IRMXP_TIIE91,0
90_VRZCB_08,Floating Amortizing Bond,CI_TIIE91,IRMXP_TIIE91,0
91_INTRACB_04,Floating Amortizing Bond,CI_TIIE28_Promedio,IRMXP_TIIE28_IRS,0
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4


Ya que no sé por qué me manda este error.
decaro6802
Perlero nuevo
Perlero nuevo
 
Mensajes: 14
Registrado: 2010-04-10 18:45 @823

Publicidad

Re: Formatear archivo separado por comas

Notapor explorer » 2010-05-21 16:02 @710

Yo no veo ese problema en el código. Me suena a que no le falta la primera línea con el shebang.

Lo que sí veo son problemas muy graves, confundiendo arrays con escalares.

Aquí tienes una versión que funciona. Presta especial atención a los sigil (caracteres que hay delante de las variables). No confundas lo que significa '$' con un '@' (y con un '%' en los hash).

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. #!/usr/bin/perl
  2.  
  3. while (my $linea = <>) {
  4.     chomp $linea;
  5.  
  6.     @Sal = split q[,], $linea;
  7.  
  8.     printf("%17s%30s%30s%30s%30s*\n", @Sal);
  9. }
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


Fíjate que la primera línea contiene el shebang (el #!) que le indica al shell qué intérprete debe arrancar para procesar el resto del fichero. Otra forma de ejecutarlo es poniendo el nombre del intérprete antes del programa:

SCATQA$ perl ./prueba.pl Cat_CurInd.csv > Prueba.txt

La salida es:
Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
  1.    90_CHIHCB_09-2      Floating Amortizing Bond                     CI_TIIE91                  IRMXP_TIIE91                             0*
  2.       90_EDONL_03      Floating Amortizing Bond                CI_Cetes182_BI            IRMXP_Cetes_Sec_BI                             0*
  3.     90_EDONL_03-2      Floating Amortizing Bond                CI_Cetes182_BI            IRMXP_Cetes_Sec_BI                             0*
  4.       90_VRZCB_06      Floating Amortizing Bond                     CI_TIIE91                  IRMXP_TIIE91                             0*
  5.       90_VRZCB_08      Floating Amortizing Bond                     CI_TIIE91                  IRMXP_TIIE91                             0*
  6.     91_INTRACB_04      Floating Amortizing Bond            CI_TIIE28_Promedio              IRMXP_TIIE28_IRS                             0*
Coloreado en 0.000 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


Volver a Básico

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado

cron