"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)

Antwort per Email an