On Tuesday, June 18, 2002, at 08:46 , Shishir K. Singh wrote:
> Is there a way to get the number of lines in a file. Conditions: > > a) Without using backticks on wc -l > b) Without opening the file and looping over the records not really unless your OS provides some sort of 'meta-data' file that you could open and it had such in it. the notion of a 'line' for a 'file' is rather an arbitrary construct that we have taken to mean that which ends with the EOL token of this OS remember that 'wc -l' is really little more than a fancy way of counting the EOL tokens in a file. note that the sequence "\n\n" would be considered 'two lines' - one of which is 'blank'. IF you knew that the file were a fixed format structure such that there were exactly K bytes of data per line, then you could use stat() or lstat() to return the size and divide by K to calculate the data. So if you want an accurate count - then opening the file and spinning through it would be a way to get that value my $count=0; open(FH, $someFile) or die "unable to open $someFile: $!\n"; $count++ while(<FH>); close FH; ciao drieux --- for fun, understand [jeeves:/tmp/drieux] drieux% od -c file 0000000 l i n e 1 \n l i n e 2 \n l i n e 0000020 3 \n \n l i n e 4 \n 0000031 [jeeves:/tmp/drieux] drieux% wc -l file 5 file [jeeves:/tmp/drieux] drieux% grep -c '\n' file 4 [jeeves:/tmp/drieux] drieux% -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]