Hi Yitzle: Thank you very much for your suggestion:
Here is my perl file: clusters.pl #! /usr/bin/perl use warnings; use strict; while (my $line = <>) { $line = ~/cluster\[(\d)+\] = {([\d ]+)}/ or die; my @vals = split(/+/,"$1 $2"); print join(",",@vals). "\n"; } my input file (clusters.in) is: cluster[1] = { 1 2 3 4 8 10 12 13 14 18 20 22 } cluster[2] = { 5 6 7 11 17 } cluster[3] = { 9 15 16 19 21 23 27 30 31 33 34 } cluster[4] = { 24 25 26 28 29 32 } When I input to the shell bash-3.00$ ./clusters.pl clusters.in > clusters.out I do get the following error message: Quantifier follows nothing in regex; marked by <-- HERE in m/+ <-- HERE / at ./clusters.pl line 6. and got nothing written at the output file Where am I making the mistake ? Am I wrongly invocating the perl code ? Thank you for any help Regards Erasmo On 26/06/2008, yitzle <[EMAIL PROTECTED]> wrote: > On Thu, Jun 26, 2008 at 3:28 PM, Erasmo Perez <[EMAIL PROTECTED]> > wrote: >> Hi dear list: >> >> Thank you very much for you great help in solving my past issue, >> regarding the removing of the trailing commas and points. >> >> Thank you very much indeed :-) >> >> Now, my last (I hope) issue. >> >> I got another text file in the following format: >> >> cluster[1] = { 2 3 4 8 10 14 } >> cluster[2] = { 25 26 29 32 } >> cluster[3] = { 1 5 6 7 11 12 13 17 18 22 } >> cluster[4] = { 9 19 21 23 24 27 28 30 31 33 34 } >> >> and I need to tranform it in a new CSV file that starts each line with >> the "cluster" value (the square-brackets enclosed value), followed by >> its {}-bracket enclosed list values (in the same order), as is shown >> below: >> >> 1,2,3,4,8,10,14 >> 2,25,26,29,32 >> 3,1,5,6,7,11,12,13,17,18,22 >> 4,9,19,21,23,24,27,28,30,31,33,34 >> >> How could I accomplish it using Perl ? >> >> How could I remove the square-brackets, the {}'s , the "=" sign and >> the word "cluster" from the input file, rendering the same number >> sequence, but now just separated by commas ? >> >> Thank you very much for your great help, it is _saving_ my neck in the job >> :-) >> >> Regards >> >> Erasmo > > #!/usr/bin/perl > use warnings; > use strict; > > while ( my $line = <> ) { > $line =~ /cluster\[(\d)+\] = {([\d ]+)}/ or die; > my @vals = split( / +/, "$1 $2" ); > print join(",", @vals) . "\n"; > } > -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] http://learn.perl.org/