WinFuture-Forum.de: Perl: Datei Zeichenweise Einlesen - WinFuture-Forum.de

Zum Inhalt wechseln

Nachrichten zum Thema: Entwicklung
Seite 1 von 1

Perl: Datei Zeichenweise Einlesen


#1 Mitglied ist offline   tahomas 

  • Gruppe: aktive Mitglieder
  • Beiträge: 25
  • Beigetreten: 21. Juli 05
  • Reputation: 0

geschrieben 22. Juli 2005 - 07:46

hallo!
bin ein perl neuling und desshalb die frage:
ich möchte aus einer log-datei folgende daten auslesen und in verschiedene variablen einlesen:
1. unix timestamp (steht in jeder zeile, danach ist ein leerzeichen)
2. eine bestimmte id, die 15 zeichen lang ist (steht ebenfalls in jeder zeile)

hier ein beispiel:
1122006373 /home/asdf/IN/987654321987654/GZGGWP.RN_

kann mir bitte jemand helfen?
lg tahomas

Dieser Beitrag wurde von tahomas bearbeitet: 22. Juli 2005 - 07:52

0

Anzeige



#2 Mitglied ist offline   Witi 

  • Gruppe: aktive Mitglieder
  • Beiträge: 5.947
  • Beigetreten: 13. Dezember 04
  • Reputation: 43
  • Geschlecht:Männlich
  • Wohnort:Kingsvillage
  • Interessen:Frickeln

geschrieben 22. Juli 2005 - 07:52

haste es mal mit regex probiert?
quasi sowas in der Art:
[0-9]*

0

#3 Mitglied ist offline   tahomas 

  • Gruppe: aktive Mitglieder
  • Beiträge: 25
  • Beigetreten: 21. Juli 05
  • Reputation: 0

geschrieben 22. Juli 2005 - 07:54

hallo!
nein hab ich noch nicht...
aber wie genau soll das ausschauen und wie soll ichs hinschreiben?
sorry wegen der frage aber ich bin nicht gut in perl :blush:
lg thomas
0

#4 Mitglied ist offline   hoschen 

  • Gruppe: aktive Mitglieder
  • Beiträge: 748
  • Beigetreten: 12. Februar 04
  • Reputation: 2

geschrieben 22. Juli 2005 - 07:57

@tahomas

schreib mal bitte dabei mit welchem OS du arbeitest. Für mich sieht es nach Linux aus, oder bin ich da falsch?
0

#5 Mitglied ist offline   Witi 

  • Gruppe: aktive Mitglieder
  • Beiträge: 5.947
  • Beigetreten: 13. Dezember 04
  • Reputation: 43
  • Geschlecht:Männlich
  • Wohnort:Kingsvillage
  • Interessen:Frickeln

geschrieben 22. Juli 2005 - 07:58

hier erstmal was regex ist: http://de.wikipedia.org/wiki/Regex

wie weit bist du denn, schaffst du es eine Datei zeilenweise auszulesen?
0

#6 Mitglied ist offline   tahomas 

  • Gruppe: aktive Mitglieder
  • Beiträge: 25
  • Beigetreten: 21. Juli 05
  • Reputation: 0

geschrieben 22. Juli 2005 - 07:58

hallo!
das script läuft auf einem linux-server...
0

#7 Mitglied ist offline   tahomas 

  • Gruppe: aktive Mitglieder
  • Beiträge: 25
  • Beigetreten: 21. Juli 05
  • Reputation: 0

geschrieben 22. Juli 2005 - 07:59

schätze dass das so ausschaut:

open(INPUT, "<../../var/log/ftp/write.log") or die "Can't open file: $!\n";

while (<INPUT>) {
chomp;
print $_;
print "\n";
}
close(INPUT);
0

#8 Mitglied ist offline   Witi 

  • Gruppe: aktive Mitglieder
  • Beiträge: 5.947
  • Beigetreten: 13. Dezember 04
  • Reputation: 43
  • Geschlecht:Männlich
  • Wohnort:Kingsvillage
  • Interessen:Frickeln

geschrieben 22. Juli 2005 - 08:07

stimmt...bash ist es viel einfacher :blush:

Timestamp:
cat write.log | grep -o [0-9]*

ID:
cat write.log | grep -o /[0-9]*/

0

#9 Mitglied ist offline   tahomas 

  • Gruppe: aktive Mitglieder
  • Beiträge: 25
  • Beigetreten: 21. Juli 05
  • Reputation: 0

geschrieben 22. Juli 2005 - 08:16

ok, danke.
aber wie speichere ich jetzt die einzelnen werte auf eine variable?
lg tahomas.
0

#10 Mitglied ist offline   Witi 

  • Gruppe: aktive Mitglieder
  • Beiträge: 5.947
  • Beigetreten: 13. Dezember 04
  • Reputation: 43
  • Geschlecht:Männlich
  • Wohnort:Kingsvillage
  • Interessen:Frickeln

geschrieben 22. Juli 2005 - 08:25

das müsste reichen:
#!bin/sh
timestamp=`cat write.log | grep -o [0-9]* `;
id=`cat write.log | grep -o /[0-9]*/ | sed 's#/##g'`;
echo $timestamp;
echo $id;


der nachteil an dieser Lösung, dass du die Datei zweimal ausliest. Ich weiß, aber grad leider nicht, ob das in einem Schritt möglich ist.
0

#11 Mitglied ist offline   tahomas 

  • Gruppe: aktive Mitglieder
  • Beiträge: 25
  • Beigetreten: 21. Juli 05
  • Reputation: 0

geschrieben 22. Juli 2005 - 08:59

herzlichen dank!
funktioniert!!
wie kann ich das alles in einen array einlesen und doppelte einträge löschen?
lg tahomas
0

#12 Mitglied ist offline   Witi 

  • Gruppe: aktive Mitglieder
  • Beiträge: 5.947
  • Beigetreten: 13. Dezember 04
  • Reputation: 43
  • Geschlecht:Männlich
  • Wohnort:Kingsvillage
  • Interessen:Frickeln

geschrieben 22. Juli 2005 - 09:10

schreib die Werte in ne Datei, sortier sie und filter mit uniq die dublikate raus
0

#13 Mitglied ist offline   tahomas 

  • Gruppe: aktive Mitglieder
  • Beiträge: 25
  • Beigetreten: 21. Juli 05
  • Reputation: 0

geschrieben 22. Juli 2005 - 10:33

danke für eure hilfe!!
lg tahomas
0

Thema verteilen:


Seite 1 von 1

1 Besucher lesen dieses Thema
Mitglieder: 0, Gäste: 1, unsichtbare Mitglieder: 0