[linux] Re: shell programmeervraagje
Paul Slootman
paul+nospam op wurtel.net
Wo mei 4 15:05:27 CEST 2005
On Wed 04 May 2005, Daniel C. von Asmuth wrote:
>
> > naam="filenaam";bla=`wc -l < $naam`; bla=$[bla-1]; head -$bla < $naam;echo "blablabla"; tail -2 $naam
>
> In bovenstaande zou de input file maar liefst drie keer achtereen worden gelezen.
Ik zou het "gewoon" in perl doen:
-----schnippie--------------------------------------------------------
#!/usr/bin/perl
my @regelbuffer = ();
while (<>) {
push @regelbuffer, $_;
next if $#regelbuffer < 2;
print shift @regelbuffer;
}
print "blablabla\n";
print @regelbuffer;
exit 0;
-----schnappie--------------------------------------------------------
Of als je memory over hebt, of weet dat de input niet zo veel is:
-----schnippie--------------------------------------------------------
#!/usr/bin/perl
my @regelbuffer = <>;
splice @regelbuffer, -2, 0, ("blablabla\n");
print @regelbuffer;
exit 0;
-----schnappie--------------------------------------------------------
Paul Slootman
More information about the Linux
mailing list