heinz: wieder einmal matching

Hallo,

in meiner Datei/Variable steht.

Fold: 123
GFFold: 123
FREE:345

ich suche nach Fold: und möchte nun alles nach Fold: bis \n einlesen. Also nur den Messwert. Dabei sollte keine Unterscheidung zwischen gross/kleinbuchstaben stattfinden.
Ich schnall das nicht

Gruß
       Heinz

  1. Moin!

    Fold: 123
    GFFold: 123
    FREE:345

    In einer Linux-Shell geht:

    var=cat file.txt | grep "^Fold:" | cut -f2 -d ":" | tr -d \n | tr -d [:blank:];

    In Perl könntest Du über split oder Text::CSV nachdenken.

    MFFG (Mit freundlich- friedfertigem Grinsen)

    fastix

  2. moin,

    Ich schnall das nicht

    Ich schnalle das mal so:

      
    use strict;  
    my $res = {};            # Results  
    while( my $line = <DATA>){  
    	my ($k, $v) = split ":", $line;	  
    	$k =~ s/^\s+//;        # Leerzeichen am Anfang raus  
    	$k = unpack "A*", $k;  # Leerzeichen und Newlines am Ende raus  
    	$v =~ s/^\s+//;        # Leerzeichen am Anfang raus  
    	$v = unpack "A*", $v;  # Leerzeichen und Newlines am Ende raus  
    	$k = lc $k;            # alle Keys sind jetzt kleingeschrieben  
    	$res->{$k} = $v;       # Schreibe Resultate  
    }  
      
    print $res->{fold};  
      
    __END__  
    Fold: 123  
    GFFold: 123  
    FREE:345  
    
    

    Schönen Sonntag,
    Horst

  3. Dafür schreib ich nicht mal eine Programmdatei.

    perl -lne'print $1 if /\A Fold: (.*)/imsx;' < Messdatei  
     123
    

    Bitteschön, alles nach Fold: inklusive Leerzeichen.