2016-12-14 6 views
-3

Ich muss eine bestimmte Zeile (Zeile enthält is successfully created.) aus einer Textdatei lesen und müssen die Zeile teilen und die spezifischen Werte in Variablen speichern.lesen Sie eine Zeile aus einer Datei und teilen Sie die Zeile in Perl

Die durchgezogene Linie ist

LOG----Payrun.c:0263:28/11/16 07:45:04 > Pay file /home/user/dev/MODULE447/input/all/20161111/PAY001.TXT is successfully created. 

Ich habe den String-Wert /home/user/dev/MODULE447/input/all/20161111/ in eine Variable und PAY001.TXT in eine andere Variable zu erhalten.

Kann mir irgendein Körper helfen, aus der Datei zu lesen und die erforderlichen Werte in Variablen zu bekommen?

+3

Versuchen Sie es selbst und kommen Sie zurück, wenn Sie ein bestimmtes Problem haben. SO ist nicht "ein Schreibcode für mich" Service – Jens

+0

Eigentlich bin ich neu in Perl und nicht bewusst, Dateiverarbeitung. Gemein, während ich versuche, es mit Hilfe von Google selbst zu tun. Wie auch immer, danke für Ihre Antwort. – user3090870

+1

Sie sollten die Forschung * vor * die Frage stellen, nicht während Sie auf Antworten warten. – Quentin

Antwort

2

Ich habe dies für Sie begonnen:

use strict; 
use warnings; 

my $inputfile = $ARGV[0]; 
my $matchedline = ""; 

#open file 
open(INPUT, $inputfile) || die "Can't reason $!\n"; 
while(<INPUT>) #Each line looping 
{ $matchedline .= $_ if($_=~m/is successfully created/g); } #Check matched line 

print $matchedline; #Confirm the matched line. 

Danach Sie in der neuen Datei zu speichern, wird versuchen, und dies ist für die Zuordnung

+0

Danke @ ssr1012 – user3090870

3

Soetwas werde es tun.

#!/usr/bin/env perl 
use strict; 
use warnings; 

#iterate stdin or files specified on command line. 
while (<>) { 
    #regex match, capturing part of the match. 
    #note - non whitespace matching, so will break if you've whitespace chars in your filenames 
    #or paths. 
    if (my ($path, $file) = m,\s(\S+/)(\S+) is successfully created,) { 
     print "Path = $path, file = $file","\n"; 
    } 
} 
+0

Dank @Sobrique – user3090870

Verwandte Themen