The UNIX and Linux Forums  


Go Back   UNIX och Linux Forum > Upp Forum > Shell-programmering och Skript
.
google unix.com



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

 
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered by Powered by Google
 
LinkBack Thread Tools Sök i denna tråd Rate Thread Visningslägen
  #1 (permalänk)  
Old 07-16-2008
Figaro figaro is offline
Registered User
  
 

Join Date: Jan 2007
Inlägg: 268
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
 

Komihåglista

Thread Tools Sök i denna tråd
Sök i denna tråd:

Avancerad sökning
Visningslägen Betygsätt denna tråd
Betygsätt denna tråd:

Utstationering Regler
Du får inte efter nya trådar
Du får inte efter svar
Du får inte skicka bilagor
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG] kod
HTML-koden är Av
Trackback är
Pingbacks är
Refbacks är




Alla tider är GMT -4. Klockan är nu 04:15.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Översättningar Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
UNIX och Linux Forum Innehållet upphovsrättsskyddat © 1993-2009. All Rights Reserved.Ad förvaltning RedTyger

Content Relevant webbadresser från vBSEO 3.2.0