Unbekannt Zeichen in einer Datei finden

T

tüftler

Grünschnabel
Brauche Eure Hilfe!!!!

Bekomme täglich Interface mit Dateien in denen des öfteren Zeichen vorhanden sind die mein Programm nicht versteht und dadurch auch der insert abgelehnt wird. Dann fängt immer die Sucherei in der Datei nach diesen Zeichen (z.B. Ø) an.

Kennt von Euch vielleicht einer einen Befehl in Unix mit denen ich solche Zeichen schnell finden kann, bzw. mir unbekannte Zeichen außerhalb des deutschen Zeichensatz anzeigt.

Bin für jede Hilfe sehr Dankbar!!!!!
 
Hallo,

vielleicht bringt dich ein
Code:
sed -e 's/[^[:alnum:]]/_/g' dateirein.txt > dateiraus.txt
weiter. Du sagst ja nicht, welche Zeichen dein Programm lesen kann und welche nicht.

cu

P.S. Und bitte schrei nicht so: Da wird man ja taub.
 
Ich habe kürzlich sowas gebaut, da Portage sowas nicht anbietet. Evtl. hilft es dir ja weiter.
Die 2 angehängten Files bilden fixname.
Fixname kannst du dann so aufrufen:
Code:
 echo "text mit Ø" | ./fixname 3 0
das soll so viel heißen wie 'Repariere den Text mit level 3 und entferne die Leerzeichen nicht'.
 

Anhänge

  • fixname.cpp.txt
    685 Bytes · Aufrufe: 7
  • stringfixer.h.txt
    8,1 KB · Aufrufe: 7
Code:
echo -e 'Ø\nfoo\nbär\nhühü\nAHAHAHAHA\nzomgness\nµ\nhihi\n'|
perl -ne 'BEGIN {$ascii.=chr for 0..127; $NOASCII=qr/[^$ascii]/} print if /$NOASCII/'
Zeigt alle Zeilen vom Input an, in denen mindestens ein nicht-ascii Zeichen vorkommt. (Kann auch als Datei direkt an perl gegeben werden, kein cat nötig...)
Für spezifisch deutschen Zeichensatz kannst das ja selber erweitern (dann vielleicht als richtiges Skript, weil cli doch etwas eng ist) oder auch nicht.

edit:
so kann ich die Variable $ascii natürlich nicht einfach in die RE reinklatschen, ich dachte dank qr// würd das gehen, aber fällt aus wegen is nicht.
Hier mal eine "funzende" Version:
Code:
echo -e '\\\n/\n|\n-\nfoo\nµzig'|
perl -ne 'BEGIN {$ascii.=chr for 0..127;} print if /[^\Q$ascii\E]/'
 
Zuletzt bearbeitet:
Erst mal ein großen DANK an alle!!!!

Wenn es nur um das eine Zeichen ( Ø) gehen würde hätte ich auch kein Problem. Leider ist es nicht so, sondern es kommen auch allerlei russischer Zeichen vor die ich vorher nicht kenne. Folglich müsste es ein Befehl geben der mir sagt, zeige mir alle Zeilen in dem kein asci von 0-127 vorkommt. Die müsste ich dann manuell ersetzten oder noch besser diese werden ersetzt durch einen Punkt.
Da die Dateien sehr groß (bis 100.000 Zeilen) sind, könnt Ihr euch wohl vorstellen was das für ein Aufwand ist den Fehler manuell zu suchen.
 

Ähnliche Themen

Server-Monitoring mit RRDTool

Zurück
Oben