perlunity.de - PERL | JAVASCRIPT | PHP | MySQL | APACHE



#!/COMMUNITY

Members: 5374
davon online: 1
weitere User: 33
Click for quality!




10.02.2012 / 10:13

Community-Member werden   |   Paßwort vergessen   |   OnlineMonitor (1) Wer ist online ... OnlineMonitor starten !
     

 

Home


PERLscripts


PHPscripts


JAVAscripts


Hilfreiches


Links2www


Newscenter


Community


Interna




Community  »  Perl: Allgemeines Forum zur Themenübersicht Themensuche Themenansicht in Thread-Modus


BeitragEinzelne Textzeichen aus Array entfernen
Seitenanfang
Hallo,

hier wieder ein absoluter Neuling der auf eine kleine Hilfe oder einen Tip hofft. In meinen Script öffne ich ein File und wandle die Trennzeichen der einzelnen Zeilen von Tabs in Semikolon um. Das klappt. Nun hat mein Ausgangsfile aber mehr Trennzeichen als benötigt und diese möchte ich gerne aus den einzelen Zeilen entfernen ohne meinen CR zu löschen. Am Ende wir das Ergebnis mit einem Header versehen und wieder in einem neuen File abgespeichert. Klappt auch schon....

Nur die überflüssigen Zeichen eben...

192.168.1.10;HOSTNAME;00-B0-D0-45-EN-DE;0 ms;;;

Danke Gruß,

Fuzzdriver

Datum: 17.11.2005-17:36

Beitragre: Einzelne Textzeichen aus Array entfernen
Seitenanfang
Hi,

das ganze kannst du dir eigentlich sparen. Indem du schon beim ersetzen der Tabulatoren
einen anderen Ersetzungstring benutzt.

Ich würde diesen hier nehmen s/\s+/;/g;

Ansonsten kannst du die überflüssigen ; mit diesem Suchstring entfernen. s/;+/;/g;

Gruß,
cornhulio

Datum: 18.11.2005-08:22

Beitragre: Einzelne Textzeichen aus Array entfernen
Seitenanfang
Hi,

vielen Dank für die fixe Antwort.

Bei meinem Datensatz ist es so da ich aber nicht alle überflüssigen Semikolons entfernen möchte, sondern nur tatsächlich die am Ende der Zeile. Da bei meinen gelieferten Daten auch nicht alle Zeiele grundsätzlich befüllt sind verändere ich mit dem Löschen aller Semikolons meine meine Datenstruktur für den weiteren Import in meine DB.

192.168.1.10;HOST1,1;00-B0-D0-23-EN-DE;0 ms;;;
192.168.1.11;;00-C0-4F-A6-EN-DE;1 ms;;;
;;HOST3;00-C0-4F-A6-EN-DE;1 ms;Snmp Community Strin;;

Vieleicht hast Du noch einen Tip wäre Super.

Danke

Gruß,

Fuzz

Datum: 18.11.2005-10:00

Beitragre: Einzelne Textzeichen aus Array entfernen
Seitenanfang
Hi,

dann sollte diese suche für dich dir richtige sein:

s/;+$/;/g;

Datum: 18.11.2005-11:59

Beitragre: Einzelne Textzeichen aus Array entfernen
Seitenanfang
Hi,

echt Super Danke. Deine Zeile klappt und entfernt auch meine überflüssigen Semikolons gnadenlos.

Ich fürchte ich habe einen Fehler gemacht. Wenn alle Semikolons entfern werden, liegt keine einheitliche Datenstruktur vor, da es auch Felder gibt die auch ohne Inhalt importiert werden müssen.

Ist es möglich die einzelene Felder als Spalten zu betrachen und nur die Inhalte von IP;HOST;MAC;SNMP abzufragen und dann auszugeben.

Wenn ich Versuche einzelene Arrays abzufragen, erhalte ich als ausgabe immer den Inhalt einer kompletten Zeile nicht aber kein einzelnes Feld.

Von diesen Sieben möglichen Feldern benötige ich nur 4.

Bisheriger Output:

IP;HOST;MAC;RESPON;PORT;SNMP;

192.168.1.10;HOST1;00-B0-D0-23-AD-AC;0 ms;;;
192.168.1.11;HOST2;00-C0-4F-A6-AD-AC;1 ms;;;
192.168.1.12;HOST3;00-06-29-EE-AD-AC;0 ms;;;
192.168.1.12;NPIC10753;00-11-0A-C1-AD-AC;1 ms;;HP ETHERNET MULTI-ENVIRONMENT,ROM V.29.11,JETDIRECT,JD115,EEPROM V.29.12,CIDATE 03/23/2005;
10.8.21.55;HOST4;00-0E-7F-D8-AD-AC;1 ms;;HP ETHERNET MULTI-ENVIRONMENT,ROM C.25.80,JETDIRECT,JD115,EEPROM V.28.06,CIDATE 04/27/2004;

Wunschtraumformat:

IP;HOST;MAC;SNMP

192.168.1.10;HOST1;00-B0-D0-23-AD-AC;
192.168.1.11;HOST2;00-C0-4F-A6-AD-AC;
192.168.1.12;HOST3;00-06-29-EE-AD-AC;
192.168.1.12;NPIC10753;00-11-0A-C1-AD-AC;HP ETHERNET MULTI-ENVIRONMENT,ROM V.29.11,JETDIRECT,JD115,EEPROM V.29.12,CIDATE 03/23/2005
10.8.21.55;HOST4;00-0E-7F-D8-AD-AC;HP ETHERNET MULTI-ENVIRONMENT,ROM C.25.80,JETDIRECT,JD115,EEPROM V.28.06,CIDATE 04/27/2004

Danke für nen Tip oder vorgehesweise

Grüße,

Fuzzdriver

Datum: 18.11.2005-12:28

Beitragre: Einzelne Textzeichen aus Array entfernen
Seitenanfang
Hi,

hab da mal fix was zusammengeschrieben. Gibt sicher auch elegantere Lösungen dafür.

my @tabelle = split/;/g;

print "IP;HOST;MAC;SNMP\n";
print "$tabelle[0]; $tabelle[1]; $tabelle[2];";
if (defined ($tabelle[5])) {
print "$tabelle[5]";
}

Datum: 18.11.2005-12:51

-






-
-