Thread bestimmte Zeile einer Datei in ein Array (5 answers)
Opened by wenze at 2015-10-29 11:27

Linuxer
 2015-10-29 12:57
#182734 #182734
User since
2006-01-27
3890 Artikel
HausmeisterIn

user image
Beispielhalfter Ablauf:

- Öffne die Datei lesend
- lese zeilenweise
- - überspringe Zeilen, die nicht die gewünschte DB betreffen
- - vergleiche die gewünschten Spaltenwerte mit den gesetzten Limits
- - - gebe Info aus, wenn Limits überschritten werden
- schließe Datei



Hier ein ungetesteter Schnellschuß aus der Mittagspause:
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
#! /usr/bin/perl
use strict;
use warnings;

my $filename = "sqldaten.txt";

my $wanted_db = "XX1";

my $free_space_threshold      = 12;
my $db_full_percent_threshold = 90;


open my $rh, '<', $filename or die "Error: open($filename) failed: $!";

while ( my $line = <$rh> ) {

    my ( $dbname, $free_space, $db_full_percent ) = ( split m{\s+}, $line )[0,2,3];

    next if $dbname ne $wanted_db;

    if ( $free_space < $free_space_threshold ) {
        printf "%s running out of space: %s MB left\n", $dbname, $free_space;
    } 
    if ( $db_full_percent > $db_full_percent_threshold ) {
        printf "%s running full: %s %% filled.\n", $dbname, $db_full_percent;
    } 

}

close $rh;


PS: Beachte Raubtiers Hinweise bezüglich des Leerzeichens am Zeilenanfang. Ggfs. sind die Indizes der Spalten anzupassen.
Last edited: 2015-10-29 12:58:43 +0100 (CET)
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 bestimmte Zeile einer Datei in ein Array