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/