Hi John thanks for replay, script is working fine I am unable to understand following expression s!/\*.*?(?:\*/|$)!!,
I am unable to find the functionality of 1) s! 2)?: With Books available with me Can any one send the path tutorials about the regular expression contain description of s! and ?: Thanks and regards Gowri -----Original Message----- From: John W. Krahn [mailto:[EMAIL PROTECTED] Sent: Thursday, March 13, 2008 9:09 PM To: Perl Beginners Subject: Re: reg help: printing line numbers in file Gowri Chandra Sekhar Barla, TLS, Chennai wrote: > > From: John W. Krahn [mailto:[EMAIL PROTECTED] >> >> Gowri Chandra Sekhar Barla, TLS, Chennai wrote: >>> >>> Can any one please give the scripting for appending line numbers for >> the code lines >>> >>> For example: >>> >>> /* requesting for the script >>> * for printing line number */ >>> >>> Fun_script() >>> { >>> Int a; /* local parameter */ >>> Int b; /* local parameter */ >>> >>> /* adding the >>> Two numbers */ >>> Int c = a+b; >>> >>> }/* function end */ >>> >>> >>> Output should be: >>> >>> /* requesting for the script >>> * for printing line number */ >>> >>> 1 Fun_script() >>> 2 { >>> 3 Int a; /* local parameter */ >>> 4 Int b; /* local parameter */ >>> >>> /* adding the >>> Two numbers */ >>> 5 Int c = a+b; >>> >>> 6}/* function end */ >> >> $ echo " >> >> /* requesting for the script >> * for printing line number */ >> >> Fun_script() >> { >> Int a; /* local parameter */ >> Int b; /* local parameter */ >> >> /* adding the >> Two numbers */ >> Int c = a+b; >> >> }/* function end */ >> >> " | perl -e' >> my $count; >> while ( <> ) { >> my $temp = $_; >> s!/\*.*?(?:\*/|$)!!, s!(?:^|/\*).*?\*/!!, s/^\s+//, s/\s+$// for >> $temp; >> print length $temp ? ++$count . " $_" : $_; >> } >> ' >> >> /* requesting for the script >> * for printing line number */ >> >> 1 Fun_script() >> 2 { >> 3 Int a; /* local parameter */ >> 4 Int b; /* local parameter */ >> >> /* adding the >> Two numbers */ >> 5 Int c = a+b; >> >> 6 }/* function end */ > > Hi thanks for your replay > > I missed out one thing I don't want line numbers in front of these stars > > /* xxyxyxyxyxyxyxyyxyx > * yyyyyyyyyyyyyyyyyyyy > * yyyyyyyyyyyyyyyyyyyyyy > * zzzzzzzzzzzzzzzzzzzzzzz > */ > > But the script given by u working fine except above condition > > And I am unable to understand the expression s!/\*.*?(?:\*/|$)!!, $ echo " /* requesting for the script * more * and more * for printing line number */ Fun_script() { Int a; /* local parameter */ Int b; /* local parameter */ /* adding the Two numbers */ Int c = a+b; }/* function end */ " | perl -e' my ( $count, $in_comment ); while ( <> ) { my $temp = $_; s!/\*.*?\*/!!g; s!/\*.*?$!! and $in_comment++; $in_comment and s!^.*?\*/!! and $in_comment--; $in_comment and s/.*//; s/^\s+//; s/\s+$//; print length() ? ++$count . " $temp" : $temp; } ' /* requesting for the script * more * and more * for printing line number */ 1 Fun_script() 2 { 3 Int a; /* local parameter */ 4 Int b; /* local parameter */ /* adding the Two numbers */ 5 Int c = a+b; 6 }/* function end */ John -- Perl isn't a toolbox, but a small machine shop where you can special-order certain sorts of tools at low cost and in short order. -- Larry Wall -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] http://learn.perl.org/ DISCLAIMER: ----------------------------------------------------------------------------------------------------------------------- The contents of this e-mail and any attachment(s) are confidential and intended for the named recipient(s) only. It shall not attach any liability on the originator or HCL or its affiliates. Any views or opinions presented in this email are solely those of the author and may not necessarily reflect the opinions of HCL or its affiliates. Any form of reproduction, dissemination, copying, disclosure, modification, distribution and / or publication of this message without the prior written consent of the author of this e-mail is strictly prohibited. If you have received this email in error please delete it and notify the sender immediately. Before opening any mail and attachments please check them for viruses and defect. ----------------------------------------------------------------------------------------------------------------------- -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] http://learn.perl.org/