#! /usr/bin/env perl use strict; use warnings; # Das Suchstichwort muss als erstes Argument uebergeben werden my $pattern = shift; die "Kein Suchbegriff angegeben!\n" if !$pattern; # und dann der Dateiname, worin gesucht werden soll my $infile = shift; die "Keine Datei zum Lesen angegeben!\n" if !$infile; die "Datei '$infile' existiert nicht!\n" if !-e $infile; die "Datei '$infile' kann nicht gelesen werden!\n" if !-r $infile; open my $fh, '<', $infile or die "open($infile,ro) failed: $!\n"; # zeilenweise aus Dateihandle lesen while ( my $line = <$fh> ) { # wenn die aktuelle Zeile exakt den Suchbegriff enthaelt if ( index( $line, $pattern ) >= 0 ) { # dann gib die Zeile und den Rest der Datei aus. print $line, <$fh>; # bei sehr großen Dateien kann es evtl. sinnvoll sein, die obere print-Zeile durch folgende zu ersetzen #print $line; # aktuell gelesen Zeile ausgeben #print while <$fh>; # zeilenweise alle weiteren Zeilen ausgeben } } close $fh;