"Roland M. Kruggel" <[EMAIL PROTECTED]> writes: >> > Was ich brauche ist nur die Zeilennummer der entschrechenden >> > datei. >> >> Ich sollte vorher alles lesen. Das wäre dann: >> >> grep -nq "$regex" filename > > Hallo Heike, > > du hast mich genau falschherrum verstanden. das ^I und ^H habe ich > durch zufall gefunden. Das in der textdate zu suchen ist kein > problem. Aber vieleicht ist ja auch noch ein ^G drinn, oder ein > 0x207 oder sonst irgend etwas, was nicht zum Text gehört. diese > Zeichen will ich finden. Ich kenne sie aber nicht. Das einzige was > ich kenne ist das was ich NICHT finden will, nämlich die > ascii-zeichen.
ASCII geht von 0 bis 127, schließt also ^G ein. Was du meinst, sind offensichtlich druckbare Zeichen und einige nicht-druckende, gängige Kontrollzeichein. Dafür gibt es eine sehr praktische Einrichtung: Character Classes. GNU egrep beherrscht die. Portabilität scheint ja kein Problem zu sein, und sed ist nicht Bedingung, also kannst du die ruhig nehmen. Mach' mal info egrep /character classes Der große Vorteil ist, dass die Dinger die locale-Einstellungen kennen. Bei: egrep -nq '[^[:print:] ]' file werden also alle Zeilen, die Zeichen außer den druckbaren und Space enthalten, erkannt. Das "druckbar" schließt Umlaute ein. Passender wäre vielleicht noch egrep -nq '[^[:print:][:space:]]' file oder, wenn dir das zu viele Kontrollzeichen erlaubt, gibst du die erlaubten getrennt an: regex=$'\x08'$'\x09' egrep -nq "[^[:print:]$regex]" file Du musst lediglich darauf achten, dass du dieselben locales verwendest wie dein File. Gruß, Heike -- Haeufig gestellte Fragen und Antworten (FAQ): http://www.de.debian.org/debian-user-german-FAQ/ Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED] mit dem Subject "unsubscribe". Probleme? Mail an [EMAIL PROTECTED] (engl)