The UNIX and Linux Forums  
Bonjour et bienvenu par les États-Unis à la UNIX et Linux Forums! Merci de votre visite et vous joindre à notre communauté mondiale.

Go Back   Les systèmes UNIX et Linux Forums > Top Forums > De programmation et de script Shell
.
google unix.com



De programmation et de script Shell Posez vos questions à propos de KSH, CSH, SH, BASH, PERL, PHP, SED, awk et d'autres scripts shell et les langages de script shell ici.

Plus d'UNIX et Linux Forum Sujets Vous trouverez peut-être utile
Fil Thread Starter Forum Réponses Last Post
xml erreur d'analyse en perl bishweshwar UNIX for Advanced & Expert Users 1 05-30-2007 10:59 PM
HTML parsing par PERL avik1983 De programmation et de script Shell 3 02-23-2007 09:25 AM
Analyse et d'obtenir des valeurs de variables Rekha De programmation et de script Shell 3 08-01-2006 10:39 AM
PERL - Analyse de Crystal Reports srinivay De programmation et de script Shell 0 05-12-2005 07:55 AM
Conversion de l'analyse de script bash à perl? cstovall De programmation et de script Shell 2 10-13-2004 10: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 Recherche sur ce Thread Rate Thread Modes d'affichage
  #1 (permalink)  
Old 07-16-2008
figaro figaro is offline
Registered User
  
 

Join Date: Jan 2007
Messages: 267
Perl: l'analyse de variables

J'ai le script suivant:
Code:
#!/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);
}
Ce script lit dans tous les fichiers csv dans le répertoire courant et affiche la date, l'heure et le contenu complet à l'écran.

Un nom de fichier est composé d'un nom, une date, un temps et un suffixe ". Csv". Ainsi, un nom de fichier peut être foo_20080909_120345.csv
Sur cette course, le tableau tient @ dt:
- $ Dt [0] \u003d "foo"
- $ Dt [1] \u003d 20080909
- $ Dt [2] \u003d 120345

Ainsi, la ligne 9 (print $ dt [1]. $ Dt [2]. ", $ _ \ N"), on obtient des lignes de ce qui suit:
"20080909 120345 ,[... reste du record ...]"
où il doit apporter:
"2008-09-09 12:03:45 ,[... reste du record ...]"

Comment puis-je saisir les tirets et les virgules ("-") (":") au bon endroit, sans contrainte en utilisant un code tel que:
substr ($ dt [1], 0, 4). "-". substr ($ dt [1], 4, 2). "-". substr ($ dt [1], 6, 2)
et ce n'est que pour la date.

Merci d'avance
  #2 (permalink)  
Old 07-16-2008
Diabolist Diabolist is offline
Registered User
  
 

Join Date: Mar 2002
Posts: 44
Voici mes fichiers:

Code:
bar_20081009_113023.csv
foo_20080909_120345.csv
munge_20061231_010020.csv
Voici le script:
Code:
#!/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);
}
Voici le résultat:
Code:
# ./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
Je suis sûr que l'on peut nettoyer un peu. Je ne suis pas un très bon, avec perl
  #3 (permalink)  
Old 07-16-2008
figaro figaro is offline
Registered User
  
 

Join Date: Jan 2007
Messages: 267
Cela fonctionne excellent, merci.
Closed Thread

Bookmarks

Thread Tools Recherche sur ce Thread
Recherche sur ce Thread:

Recherche avancée
Modes d'affichage Rate this thread
Rate this thread:

Règles de messages
Tu mai pas de nouvelles discussions: nonoui
Tu mai pas envoyer des réponses:
Tu mai pas envoyer des pièces jointes
Tu mai pas modifier vos messages

BB code est Sur
Smilies sont Sur
[IMG] code est Sur
Le code HTML est Hors tension
Trackbacks sont Sur
Pingbacks sont Sur
Refbacks sont Sur




Toutes les heures sont au format GMT -4. Le temps est maintenant 04:43 PM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Traductions Langue Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
Les systèmes UNIX et Linux Forums Content Copyright © 1993-2009. Tous droits Reserved.Ad de gestion par RedTyger

Content Relevant URLs par vBSEO 3.2.0