Thread Zeilen Suchen und Zählen (9 answers)
Opened by UliK at 2016-06-27 14:35

Linuxer
 2016-06-29 13:35
#184977 #184977
User since
2006-01-27
3891 Artikel
HausmeisterIn

user image
Hi,

Du kannst mit Perldoc:perlfunc substr Teilstrings ausschneiden; z.B. mit substr($line, 0, 3) die ersten drei Zeichen des Strings in $line.

Weitere Anmerkungen zum Skript:

- Du liest die Datei erstmal komplett in den Speicher und verarbeitest danach erst die Daten.
- Wenn die Datei sehr groß ist, verbraucht das unnötig Speicher und kann vermieden werden
- Ein leerer Array sollte mit @array=(); erzeugt werden; mit @array=("") hast Du gleich ein Element darin (einen Leerstring). war das gewünscht?
- sogenannte "lexikalische Datei-Handles" sind besser als "Bareword" Handles
- open sollte in der "3-Argumente-Form" benutzt werden; spätestens, wenn der Dateiname in einer Variablen steht


Hier mal eine etwas angepasste Version Deines Skriptes:

Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#!/usr/bin/perl 
###############################################################################################################
# count_tool.pl
# Description: This tool count all Lines in a File beginning with 1L and writes a Mail if the count is
# over a specific Limit
# Author: Ulrich Kehder
###############################################################################################################

#--------------------------------------------------------------------------------------------------------------
# Definition of libraries and global variables
#--------------------------------------------------------------------------------------------------------------
my $VERSION = "1.0.0.0";                # versionnumber of this tool

# default libraries
use 5.008;                              # perl version 5.8 is required
use strict;                             # use strict conditioning
use warnings;                           # output optional warnings

# default variable
my @Zeilen = ();                       
$ENV{"ENV"} = "";
$ENV{"PATH"} = "/usr/bin";

###############################################################################################################
# MAIN program
###############################################################################################################

# lexical filehandle; 3-argument-open, and use $! for error diagnosis
open( my $countfile, "<", "/nhdata/pptoll.310") || die "Konnte Counter-Datei nicht oeffnen: $!\n";    # Open to Read or close and End Program


while(<$countfile>)  {
  if ( "01L" eq substr( $_, 0, 3 ) ) {
    print $_;
  }
}
close($countfile);
meine Beiträge: I.d.R. alle Angaben ohne Gewähr und auf Linux abgestimmt!
Die Sprache heisst Perl, nicht PERL. - Bitte Crossposts als solche kenntlich machen!

View full thread Zeilen Suchen und Zählen