![]() |
|
|
google unix.com
|
|||||||
| Forum | Registrera | Forum Regler | Länkar | Album | FAQ | Medlemslista | Kalender | Söka | Dagens inlägg | Markera forum som lästa |
| Shell-programmering och Skript Post frågor om ksh, CSH, SH, bash, PERL, PHP, sed, awk och andra skalskript och skal skriptspråk här. |
Mer UNIX och Linux Forum Ämnen Du kan hitta Helpful
|
||||
| Tråd | Thread Starter | Forum | Svar | Senaste Inlägg |
| XML-analysfel i perl | bishweshwar | UNIX för avancerade & Expertanvändare | 1 | 05-30-2007 11:59 |
| HTML parsning av PERL | avik1983 | Shell-programmering och Skript | 3 | 02-23-2007 09:25 |
| Analysera och få värden på variabler | Rekha | Shell-programmering och Skript | 3 | 08-01-2006 11:39 |
| PERL - Analysera Crystal Reports | srinivay | Shell-programmering och Skript | 0 | 05-12-2005 08:55 |
| Omvandling av bash parsning manus till perl? | cstovall | Shell-programmering och Skript | 2 | 10-13-2004 11:33 |
|
|
LinkBack | Thread Tools | Sök i denna tråd | Rate Thread | Visningslägen |
|
||||
|
Perl: parsning variabler
Jag har följande skript: Kod:
#!/usr/bin/perl -w
@files = <*.csv>;
foreach $file (@files) {
open(FH, $file);
my @dt = split(/_|.csv/, $file);
while (<FH>) {
chomp;
print $dt[1] . $dt[2] . ",$_\n";
}
close(FH);
}
Detta skript läser alla CSV-filer i den aktuella katalogen och skriver ut datum, tid och kompletta innehållet på skärmen. Ett filnamn består av ett namn, ett datum, tid och ett suffix ". CSV". Så ett filnamn kan foo_20080909_120345.csv När kör detta, innehar @ dt matris: - $ Dt [0] \u003d "foo" - $ Dt [1] \u003d 20.080.909 - $ Dt [2] \u003d 120.345 Så linje 9 (print $ DT [1]. $ Dt [2]. "$ _ \ N") ger rader av följande: "20080909 120345 ,[... resten av skivan ...]" där den bör ge: "2008-09-09 12:03:45 ,[... resten av skivan ...]" Hur anger jag streck ("-") och kolon (":") på rätt plats utan att använda krystat kod såsom: substr ($ DT [1], 0, 4). "-". substr ($ DT [1], 4, 2). "-". substr ($ DT [1], 6, 2) och det är bara för dagen. Tack på förhand |