#!/usr/bin/perl -w use strict; my $search = shift; my $file = shift; my $out = shift; if (! $file) { open(INF, '-') or die("Unable to open STDIN\n"); } else { open(INF, $file) or die("Unable to open $file\n"); } my @buffer; while () { my $line = $_; if ($line eq "\n") { my $count = 0; #@buffer = ""; undef @buffer; } else { $buffer[$#buffer+1] = $line; } if (/$search/io) { my $buf; foreach $buf (@buffer) { print $buf; } while (($out = ) ne "\n") { print $out; } undef @buffer; print "\n"; } } #### dn: uid=testing,ou=comp,o=test.com dpwnc: BH mail: example@great.com sn: example dn: uid=testing1,ou=comp,o=test.com dpwnc: CH mail: example1@great.com sn: example1 dn: uid=testing2,ou=comp,o=test.com dpwnc: DH mail: example2@great.com sn: example2 #### dn: uid=testing,ou=comp,o=test.com mail: example@great.com dn: uid=testing1,ou=comp,o=test.com mail: example1@great.com dn: uid=testing2,ou=comp,o=test.com mail: example2@great.com