The UNIX and Linux Forums  

Go Back   UNIX e Linux Forum > Inizio Forum > Shell scripting e di programmazione
.
google unix.com



Shell scripting e di programmazione Pubblica domande su KSH, CSH, SH, Bash, Perl, PHP, sed, awk e da altri script di shell e linguaggi di scripting shell qui.

Più di UNIX e Linux Forum Argomenti potreste trovare utili
Filo Thread Starter Forum Risposte Ultimo Post
errore di analisi XML in perl bishweshwar UNIX e avanzata per utenti esperti 1 05-30-2007 11:59 PM
HTML parsing da PERL avik1983 Shell scripting e di programmazione 3 02-23-2007 09:25 AM
Parsing e ottenere i valori delle variabili Rekha Shell scripting e di programmazione 3 08-01-2006 11:39 AM
PERL - Parsing di Crystal Reports srinivay Shell scripting e di programmazione 0 05-12-2005 08:55 AM
Conversione di bash script per il parsing perl? cstovall Shell scripting e di programmazione 2 10-13-2004 11:33 PM

Closed Thread
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered by Powered by Google
 
LinkBack Thread Tools Cerca in questo Thread Rate Thread Modalità di visualizzazione
  #1 (permalink)  
Old 07-16-2008
figaro figaro is offline
Utente Registrato
  
 

Iscriviti Data: gennaio 2007
Interventi: 271
Perl: l'analisi delle variabili

Ho il seguente script:

Codice:
#!/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);
}

Questo script si legge in tutti i csv nella directory corrente e stampa la data, l'ora e il contenuto completo di schermo.

A nome del file è composto da un nome, una data, un tempo e un suffisso ". Csv". Così il nome di un file potrebbe essere foo_20080909_120345.csv
Su questa esecuzione, l'array @ dt vale:
- $ Dt [0] \u003d "foo"
- $ Dt [1] \u003d 20080909
- $ Dt [2] \u003d 120345

Quindi, la linea 9 (print $ dt [1]. $ Dt [2]. "$ _ \ N") i rendimenti delle seguenti linee:
"20080909 120345 ,[... resto del record ...]"
dove dovrebbe rendimento:
"2008-09-09 12:03:45 ,[... resto del record ...]"

Come faccio a inserire i due punti e trattini ("-") (":") al posto giusto, senza utilizzare il codice semplificato, come:
substr ($ dt [1], 0, 4). "-". substr ($ dt [1], 4, 2). "-". substr ($ dt [1], 6, 2)
e che è solo per la data.

Grazie in anticipo
  #2 (permalink)  
Old 07-16-2008
Diabolist Diabolist is offline
Utente Registrato
  
 

Iscriviti Data: marzo 2002
Interventi: 44
Ecco il mio file:


Codice:
bar_20081009_113023.csv
foo_20080909_120345.csv
munge_20061231_010020.csv

Ecco lo script:

Codice:
#!/usr/bin/perl -w

@files = <*.csv>;
foreach $file (@files) {
  open(FH, $file);
  my @dt = ($file =~ /^(\w+)_(\d{4})(\d{2})(\d{2})_(\d{2})(\d{2})(\d{2})\.csv$/);
  while (<FH>) {
    chomp;
    print "$dt[1]-$dt[2]-$dt[3] $dt[4]:$dt[5]:$dt[6],$_\n";
  }
  close(FH);
}

Ecco il risultato:

Codice:
# ./test.pl
2008-10-09 11:30:23,bar1
2008-10-09 11:30:23,bar2
2008-09-09 12:03:45,foo1
2008-09-09 12:03:45,foo2
2006-12-31 01:00:20,munge1
2006-12-31 01:00:20,munge2

Sono sicuro che può essere ripulito un po '. Io non sono un ottimo con perl
  #3 (permalink)  
Old 07-16-2008
figaro figaro is offline
Utente Registrato
  
 

Iscriviti Data: gennaio 2007
Interventi: 271
Che le opere eccellenti, grazie.
Closed Thread

Segnalibri

Thread Tools Cerca in questo Thread
Cerca in questo Thread:

Ricerca Avanzata
Modalità di visualizzazione Vota questo thread
Vota questo thread:

Distacco regolamento
Tu non può post nuovo thread
Tu non può inviare una risposta
Tu non può postare allegati
Tu non può modificare i tuoi post

BB codice è Su
Smilies sono Su
[IMG] codice Su
Codice HTML è Chiuso
Trackbacks sono Su
Pingbacks sono Su
Refbacks sono Su




Tutti gli orari sono GMT -4. La data di oggi è 08:54 AM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Traduzioni Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
UNIX e Linux Forum Content Copyright © 1993-2009. Tutti i diritti Reserved.Ad di gestione da RedTyger

Contenuti pertinenti URL da vBSEO 3.2.0