Perl - wie Nullen aus String entfernen

Gast #1308773
Ich bekomme aus einem Logfile strings die leider unter Umständen eine 
oder mehrere Nullen enthalten können.

Da ich mit dem String ansonsten auch Stringverarbeitung machen möchte, 
kommen Operationen wie ".", print usw. durcheinander.

Daher möchte ich die Nullen entfernen.

Habe schon sowas wie s/\0/g /; probiert. Aber es geht nicht. Anscheinend 
bleibt die Null drin.

Leider finde ich dazu nichts bei google.
Gast
:-)
Ich kann doch hier keine Nullen posten und Andreas wird dann böse.

Nein, mit "ein anderes Problem" meinte ich, das mein Fehler wohl 
zwischen den Ohren sitzt.

Ich habe da einen ganz merkwürdigen Effekt.

Ich mache über alle Inputzeilen ein Matching.

while(<>) {
  if($_ =~ /abc (.*)/) {
  }
  print $1 . "\n";
}


Ca. 10 Zeilen werden am Anfang gematcht und ich habe in $1 was 
drinstehen.
Dann auf einmal wird zwar der Ausdruck noch gematch, aber in $1 steht 
nichts mehr drin.
Dann, nach einigen Zeilen gehts wieder.

In den Zeilen stehen auch so Sachen wie 0x94 oder 0x80 drin.
Aber das steht auch in den Zeilen, bei denen vorher in $1 was drinstand.

Ich blicks gerade nicht.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 17 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.