Kipp, James wrote: > > > > perl -i.bak -ne 'print if $.>5; close ARGV if eof' *.txt > > > > > Bob > I have been trying to figure out a different solution then using the > -i arg. Is there a simple way to just open each file, delete the 5 > lines in place and close it(with no backup file), without getting > into sysread, truncate, etc...
Not really. What's the problem with using -i? > > something like this: > > @files = glob("*.ps"); > foreach $file (@files) { > open (IN, "$file") or die "can't open $!\n"; > while ($line = <IN>) { > $line =~ s/.*\n// if $. <= 5; > } > close IN; > > ----- > I can't seem to delete the lines in place, without using -i, I was > able to do it easily with a shells script using sed: > > cd dir_with_the_files > for file in `ls .` > do > sed '1,5d' $file > $file > done Really? did you actually try that? The shell will clobber the file before sed gets a chance to open it. I don't see how you could wind up with anything but an empty file. FWIW, FreeBSD's sed has a -i option a la Perl's. Maybe Linux and other newer Unices have that as well? -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]