perlunity.de - PERL | JAVASCRIPT | PHP | MySQL | APACHE



#!/COMMUNITY

Members: 5374
davon online: 1
weitere User: 20
Click for quality!




11.02.2012 / 20:08

Community-Member werden   |   Paßwort vergessen   |   OnlineMonitor (1) Wer ist online ... OnlineMonitor starten !
     

 

Home


PERLscripts


PHPscripts


JAVAscripts


Hilfreiches


Links2www


Newscenter


Community


Interna




Community  »  Perl: Allgemeines Forum zur Themenübersicht Themensuche Themenansicht in Thread-Modus


BeitragUNC Pfad bearbeiten
Seitenanfang
Hallo,

ich habe eine Liste von UNC Pfaden in einer Datei Liste.txt

\\server\test1\test2\test\file1.doc
\\server\test1\test2\test\testA\file2.doc

Mein Problem ist die UNC Pfade zu spliten..
ich brauche zB aus der ersten Zeile folgende Trennung:

\\server\test1\test2\test
und dann
file1.doc
in einer separaten Variable..

mit grep ("\\{2}.*\\{1}") hab ich es versucht aber vergebens. Kann mir jemand hier helfen?

Datum: 15.01.2009-11:10

Beitragre: UNC Pfad bearbeiten
Seitenanfang
Nach welchen Kriterium erfolgt die Trennung (Trennung von Verzeichnispfad und Dateiname?).

grep() verwendet man zum Filtern von Eintraegen aus einer Liste.
Beispiel: Filtern einer Dateiliste *.txt


my @txt_files = grep(/\.txt$/, @files);


my $unc_path = "\\\\server\\test1\\test2\\test\\testA\\file2.doc";

my($path, $filename) = $unc_path =~ m/^(\\\\.+\\)(.+?)$/;
print "$path\n$filename\n";


oder

my $path = substr($unc_path, 0, $idx+1);
my $filename = substr($unc_path, $idx+1);

print "$path\n$filename\n";

Datum: 15.01.2009-14:07

Beitragre: UNC Pfad bearbeiten
Seitenanfang
asphalt danke dir vielmals!

Klar.. deswegen bekam ich mit grep immer den gesamten Pfad als Ausgabe.. (peinlich)

Ja die RegEx die du geschrieben hast bringt mir das passende Ergebnis.

Super..

Datum: 15.01.2009-15:07

Beitragre: UNC Pfad bearbeiten
Seitenanfang
könntest du mir bitte die RegEx erklären?
Das wäre super nett

Datum: 23.01.2009-13:20

Beitragre: UNC Pfad bearbeiten
Seitenanfang
die runden Klammern müssten nach meinem Verständnis die Ausgaben gruppieren richtig?

Datum: 23.01.2009-13:36

Beitragre: UNC Pfad bearbeiten
Seitenanfang

/^(\\\\.+\\)(.+?)$/

# ^ --> Anfang der Zeichenkette
# ( und ) --> Gruppierung (auf Gruppen kann durch $1, $2, $3, ... zugegriffen werden {back tracking})
# \\.+ --> Backslash gefolgt von "ein oder mehr" (+) "beliebige Zeichen" (.)
# .+? --> ein oder mehr beliebige Zeichen, kleinster Treffer (?)
# $ Ende der Zeichenkette


Hinter dem ersten ".+" steht kein Fragezeichen, das heiszt der Ausdruck ist gierig (gready) er nimmt sich so viel wie moeglich, hinter dem zweiten steht ein Fragezeichen damit nimmt sich der Ausdruck so wenig wie moeglich.
Bin mir jetzt nicht sicher, koennte aber sein das der Ausdruck so noch treffender ist:

/^(\\\\.+\\)([^\\]+)$/

# ([^\\]+)$ --> ein oder mehr Zeichen die kein Backslash sind und am Ende der Zeichenkette stehen (Dateinamen koennen kein Backlash enthalten)

Datum: 23.01.2009-20:53

Beitragre: UNC Pfad bearbeiten
Seitenanfang
DANKE!!!!!!

Datum: 10.02.2009-11:55

-






-
-