Schrift
Wiki:Tipp zum Debugging: use Data::Dumper; local $Data::Dumper::Useqq = 1; print Dumper \@var;
[thread]8166[/thread]

dateinamen parsen

Leser: 1


<< >> 4 Einträge, 1 Seite
Gast Gast
 2006-07-15 14:06
#68111 #68111
Hi Leute,

ich habe hier ein kleines Problem, und zwar habe ich in meinem perl-script eine Dateiliste als array die folgendermassen aussieht:

-rw-r--r-- user/group 41733 2006-04-17 23:19:00 files/sa03.tex
-rw-r--r-- user/group 16406 2006-04-18 00:57:16 files/sa04.tex
-rw-r--r-- user/group 6313 2006-04-17 23:28:22 files/sa05.tex
-rw-r--r-- user2/group 3284 2006-04-13 21:11:10 files/sa06.tex
-rw-r--r-- user2/group 14014 2006-04-13 19:25:50 files/sa07.tex
-rw-r--r-- user2/group 4062 2003-11-18 15:44:34 files/twola ng.sty

ich will aus dieser Liste den Dateinamen, also den hinteren Teil des Strings rausparsen. Im Falle der letzten Zeile also "files/twola ng.sty". Das Problem dabei ist dass die Dateinamen eben auch Leerzeichen enthalten duerfen, ansonsten haette ich eine Zeile einfach mit splice zerlegen koennen.

Hat jmd von euch eine Idee wie ich das hinbekomme? Regulaere Ausdruecke hab ich auch schon einige versucht, ist aber immer daneben gegangen :-(

Ich habe auf jedenfall schon aus Performazgruenden keine Lust die Zeile Zeichen fuer Zeichen von links nach rechts nach Leerzeichen zu durchsuchen und dann nach dem 5. Leerzeichen mit dem auslesen zu beginnen (was ja an sich funktionieren wuerde)!

Waere SUPER wenn mir da jmd helfen koennte!!! :D

Also, vielen Dank schon mal im voraus,
Viele Gruesse,
Schranzi
renee
 2006-07-15 14:11
#68112 #68112
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
split ist für so einen Fall besser:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#!/usr/bin/perl

use strict;
use warnings;

my @array = ('-rw-r--r-- user/group 41733 2006-04-17 23:19:00 files/sa03.tex',
'-rw-r--r-- user/group 16406 2006-04-18 00:57:16 files/sa04.tex',
'-rw-r--r-- user/group 6313 2006-04-17 23:28:22 files/sa05.tex',
'-rw-r--r-- user2/group 3284 2006-04-13 21:11:10 files/sa06.tex',
'-rw-r--r-- user2/group 14014 2006-04-13 19:25:50 files/sa07.tex',
'-rw-r--r-- user2/group 4062 2003-11-18 15:44:34 files/twola ng.sty');

for my $entry(@array){
my $filename = (split(/\s+/,$entry,6))[-1];
print $filename,"\n";
}
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
pktm
 2006-07-15 14:20
#68113 #68113
User since
2003-08-07
2921 Artikel
BenutzerIn
[Homepage]
user image
Und den Dateinamen kannst du noch bequem pber File::Basename auseinander nehmen.
http://www.intergastro-service.de (mein erstes CMS :) )
pq
 2006-07-15 15:37
#68114 #68114
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
wenn du die möglichkeit hast, statt der liste selbst ein readdir zu machen, mach es.
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
<< >> 4 Einträge, 1 Seite



View all threads created 2006-07-15 14:06.