The UNIX and Linux Forums  
Hallo und herzlich Willkommen aus den Vereinigten Staaten, die UNIX-und Linux-Foren! Vielen Dank für Ihren Besuch und die Teilnahme an unserem Global Community.

Go Back   Die UNIX-und Linux-Foren > Top Foren > Shell Programmierung und Scripting
.
Google unix.com



Shell Programmierung und Scripting Post Fragen zu ksh, csh, sh, bash, Perl, PHP, sed, awk und anderen Shell-Skripte und Shell-Scripting-Sprachen hier.

Mehr UNIX-und Linux-Forum Themen Vielleicht finden Sie hilfreiche
Faden Thread Starter Forum Antworten Last Post
XML-Parsing-Fehler in perl bishweshwar UNIX für Fortgeschrittene und Experten 1 05-30-2007 10:59 PM
Parsen von HTML-PERL avik1983 Shell Programmierung und Scripting 3 02-23-2007 09:25 AM
Parsing und Werte der Variablen Rekha Shell Programmierung und Scripting 3 08-01-2006 10:39 AM
PERL - Parsing Crystal Reports srinivay Shell Programmierung und Scripting 0 05-12-2005 07:55 AM
Die Umwandlung von bash-Skript zum Parsen von Perl? cstovall Shell Programmierung und Scripting 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 Suche diesen Thread Rate Thread Anzeige-Modi
  #1 (permalink)  
Old 07-16-2008
Figaro figaro is offline
Registrierte Nutzer
  
 

Join Date: Jan 2007
Beiträge: 267
Perl: Parsing Variablen

Ich habe das folgende Skript:
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);
}
Dieses Skript liest alle CSV-Dateien im aktuellen Verzeichnis und gibt das Datum, die Uhrzeit und die komplette Inhalt Bildschirm.

Ein Dateiname besteht aus einem Namen, ein Datum, eine Zeit und eine Endung ". Csv". So einen Dateinamen könnte foo_20080909_120345.csv
Auf diesem läuft die @ dt Array gilt:
- $ Dt [0] \u003d "foo"
- $ Dt [1] \u003d 20080909
- $ Dt [2] \u003d 120345

So Linie 9 (print $ dt [1]. $ Dt [2]. ", $ _ \ N") ergibt die folgenden Zeilen:
"20080909 120345 ,[... Rest des Satzes ...]"
, wo es sollte Ertrag:
"2008-09-09 12:03:45 ,[... Rest des Satzes ...]"

Wie gebe ich Bindestriche ("-") und Doppelpunkte (":") an den richtigen Stellen, ohne künstliche Code wie:
substr ($ dt [1], 0, 4). "-". substr ($ dt [1], 4, 2). "-". substr ($ dt [1], 6, 2)
und das ist nur für das Datum.

Vielen Dank im Voraus
  #2 (permalink)  
Old 07-16-2008
Diabolist Diabolist is offline
Registrierte Nutzer
  
 

Join Date: März 2002
Beiträge: 44
Hier sind meine Dateien:

Code:
bar_20081009_113023.csv
foo_20080909_120345.csv
munge_20061231_010020.csv
Hier ist das Skript:
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);
}
Hier ist die Ausgabe:
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
Ich bin mir sicher, dass sie gereinigt werden können, ein wenig. Ich bin nicht sehr gut mit perl
  #3 (permalink)  
Old 07-16-2008
Figaro figaro is offline
Registrierte Nutzer
  
 

Join Date: Jan 2007
Beiträge: 267
Das funktioniert hervorragend, danke.
Closed Thread

Lesezeichen

Thread Tools Suche diesen Thread
Suche diesen Thread:

Erweiterte Suche
Anzeige-Modi Rate this thread
Rate this thread:

Forumregeln
Du möglicherweise nicht neue Themen
Du möglicherweise nicht nach Antworten
Du möglicherweise nicht post-Anlagen
Du möglicherweise nicht bearbeiten Sie Ihre Beiträge

BB-Code ist Auf
Smilies sind Auf
[IMG] Code Auf
HTML-Code ist Aus
Trackbacks sind Auf
Pingbacks sind Auf
Refbacks sind Auf




Alle Zeiten sind GMT -4. Es ist jetzt 02:31 PM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Ltd. Sprachliche Übersetzungen Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
Die UNIX-und Linux-Foren Content © Copyright 1993-2009. Alle Rechte Reserved.Ad Management von RedTyger

Content Relevant URLs durch vBSEO 3.2.0