Schrift
[thread]6085[/thread]

mtime auf server? (Seite 2)

Leser: 1


<< |< 1 2 >| >> 15 Einträge, 2 Seiten
Crian
 2004-03-01 11:50
#80243 #80243
User since
2003-08-04
5866 Artikel
ModeratorIn
[Homepage]
user image
Ungefähr so:

Code: (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
#!/usr/bin/perl
use strict;
use warnings;

my $input = "      -rw-r--r-- 3  owner   group   size  Feb 25 11:37 filename";

my @felder = split /\s+/, $input;

my %monatsnummer = ( 'Jan' => '01',
                     'Feb' => '02',
                     'Mar' => '03',
                     'Apr' => '04',
                     'Mai' => '05',
                     'Jun' => '06',
                     'Jul' => '07',
                     'Aug' => '08',
                     'Sep' => '09',
                     'Oct' => '10',
                     'Nov' => '11',
                     'Dec' => '12',
                   );
my $ergebnis = $monatsnummer{$felder[-4]} .
              sprintf("%02s%05s", $felder[-3], $felder[-2]);
$ergebnis =~ y/://d;

print "$ergebnis\n";


Ergebnis: 02251137


Edit: Macht nur Probleme bei Dateinamen mit Leerzeichen drin ... hmmm doch lieber von vorn? Das scheint mir irgendwie ziemlich unsicher, schade, dass Du das Modul nicht nehmen kannst.

Edit2: Ich glaub es hilft nix, denn wenn ein besonders schlauer Mensch eine Datei mit dem Namen 'Feb 30 11:87 filename' anlegt, schaust Du sonst dumm aus der Wäsche ;)\n\n

<!--EDIT|Crian|1078134870-->
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;

use strict; use warnings; Link zu meiner Perlseite
Crian
 2004-03-01 11:58
#80244 #80244
User since
2003-08-04
5866 Artikel
ModeratorIn
[Homepage]
user image
Also doch lieber so:

Code: (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
#!/usr/bin/perl
use strict;
use warnings;

my $input = " -rw-r--r-- 3 owner group size Feb 25 11:37 filename";

$input =~ s~^\s+~~;
$input =~ s~\s+$~~;

my @felder = split /\s+/, $input;

my %monatsnummer = ( 'Jan' => '01',
'Feb' => '02',
'Mar' => '03',
'Apr' => '04',
'Mai' => '05',
'Jun' => '06',
'Jul' => '07',
'Aug' => '08',
'Sep' => '09',
'Oct' => '10',
'Nov' => '11',
'Dec' => '12',
);
my $ergebnis = $monatsnummer{$felder[5]} .
sprintf("%02s%05s", $felder[6], $felder[7]);
$ergebnis =~ y/://d;

print "$ergebnis\n";


mit dem selben Ergebnis wie oben...
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;

use strict; use warnings; Link zu meiner Perlseite
ptk
 2004-03-02 13:10
#80245 #80245
User since
2003-11-28
3645 Artikel
ModeratorIn
[default_avatar]
Und nicht vergessen, dass man auch mit solchem Input fertig werden muss:
Code: (dl )
my $input = "      -rw-r--r-- 3  owner   group   size  Feb 25 2003 filename";
Das passiert, wenn die Datei aelter als sechs Monate ist.
Crian
 2004-03-04 10:31
#80246 #80246
User since
2003-08-04
5866 Artikel
ModeratorIn
[Homepage]
user image
[quote=ptk,02.03.2004, 12:10]Und nicht vergessen, dass man auch mit solchem Input fertig werden muss:
Code: (dl )
my $input = "      -rw-r--r-- 3  owner   group   size  Feb 25 2003 filename";
Das passiert, wenn die Datei aelter als sechs Monate ist.[/quote]
Code: (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 $input = "      -rw-r--r-- 3  owner   group   size  Feb 25 11:37 filename";
my $input = "      -rw-r--r-- 3  owner   group   size  Feb 25 2003 filename";

$input =~ s~^\s+~~;
$input =~ s~\s+$~~;

my @felder = split /\s+/, $input;

my %monatsnummer = ( 'Jan' => '01',
                    'Feb' => '02',
                    'Mar' => '03',
                    'Apr' => '04',
                    'Mai' => '05',
                    'Jun' => '06',
                    'Jul' => '07',
                    'Aug' => '08',
                    'Sep' => '09',
                    'Oct' => '10',
                    'Nov' => '11',
                    'Dec' => '12',
                  );
my $ergebnis = $monatsnummer{$felder[5]} .
              sprintf("%02s%05s", $felder[6], $felder[7]);
$ergebnis =~ y/://d;

print "$ergebnis\n";


Ergebnis

Code: (dl )
022502003


(man beachte die 0 vor der 2003)

passt doch ?!

Edit: Naja, es hängt von der weiteren Verwendung ab, ob es passt (wenn man es zusammen mit 02251137 verwendet).

Auf jeden Fall war das ein guter Einwurf.\n\n

<!--EDIT|Crian|1078389242-->
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;

use strict; use warnings; Link zu meiner Perlseite
Crian
 2004-03-04 10:36
#80247 #80247
User since
2003-08-04
5866 Artikel
ModeratorIn
[Homepage]
user image
022502003 (aus dem letzten Jahr)
02250123 (von 1 Uhr 23)

Hmmm da muss man auf jeden Fall aufpassen, wenn es auf Sortierreihenfolgen ankommt.
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;

use strict; use warnings; Link zu meiner Perlseite
<< |< 1 2 >| >> 15 Einträge, 2 Seiten



View all threads created 2004-02-20 10:30.