I told you my 'nix was rusty... ;-) "Gary Stainburn" <[EMAIL PROTECTED]> wrote in message [EMAIL PROTECTED]">news:[EMAIL PROTECTED]... > Hi folks, > > > On Wednesday 19 Feb 2003 9:15 am, Lance wrote: > > On a Unix system you could use 'lc' to count the lines and 'top' or 'tail' > > to read the first or last lines. My Unix is getting rusty, but there are > > functions to do what you want - so you could do something like: > > > > my $linecount = `cat file.txt| lc`; > > Quite often I see commands like this, and I have to wonder why? > > The above command forks a process and runs 'cat'. It then forks another > process 'lc' and pipes the output from cat to the input of lc. This seems a > lot of overhead when you can simply supply lc with the file name to read. > > BTW, lc doesn't exist on my box, so I'd have to use 'wc -l' which I'm guessing > 'lc' was just an alias to anyway. If you use > > my $linecount=`wc -l file.txt`; > > you'll give your machine less work to do. Also, I don't know how well DOS > systems handle pipes and multiple processes. In fact you probably don't have > 'wc' on a DOS system either. You'll probably find that your routine is as > good as it gets anyway. > > Gary > > > > > to get the line count. I'm sure that the lc command needs something else, > > so you will have to play with it to get it to work. I used to use > > something like this in ksh to do line counts on lines with millions of > > lines, and it would return pretty quick - but that was on some pretty > > impressive hardware... > > > > dunno what to do in the DOS world, other than the 'expensive' file > > processing. > > > > PS, I really need to get back into 'nix. I can't believe I have forgotten > > such *simple* stuff... ugh. > > > > > > "Toby Stuart" <[EMAIL PROTECTED]> wrote in message > > [EMAIL PROTECTED]">news:[EMAIL PROTECTED]... > > > > > > -----Original Message----- > > > > From: Madhu Reddy [mailto:[EMAIL PROTECTED]] > > > > Sent: Wednesday, February 19, 2003 1:25 PM > > > > To: [EMAIL PROTECTED] > > > > Subject: How to get 1st line, last line and no of lines in a file > > > > > > > > > > > > Hi, > > > > How to get first line, last line and no of lines in > > > > a file..... > > > > > > > > is there any perl functions available for that ? > > > > right now what i am doing is > > > > > > > > open file > > > > while (<FH> > > > > { > > > > $lines++; > > > > } > > > > close(FH) > > > > > > > > This operation is expensive.. > > > > suppose, if file have millions of records, > > > > it will take more time.... > > > > > > > > I think there should be some functions to get those.. > > > > i appreciate u r help.... > > > > > > > > Thanx in advance > > > > -Madhu > > > > > > perldoc -q "number of lines in a file" > > > > > > Found in E:\Perl\lib\pod\perlfaq5.pod > > > How do I count the number of lines in a file? > > > > > > One fairly efficient way is to count newlines in the file. > > > The following program uses a feature of tr///, as documented in > > > > the > > > > > perlop manpage. If your text file doesn't end with a newline, > > > then it's not really a proper text file, so this may report > > > > one > > > > > fewer line than you expect. > > > > > > $lines = 0; > > > open(FILE, $filename) or die "Can't open `$filename': > > > $!"; while (sysread FILE, $buffer, 4096) { > > > $lines += ($buffer =~ tr/\n//); > > > } > > > close FILE; > > > > > > This assumes no funny games with newline translations. > > -- > Gary Stainburn > > This email does not contain private or confidential material as it > may be snooped on by interested government parties for unknown > and undisclosed purposes - Regulation of Investigatory Powers Act, 2000 >
-- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]