Comment trouver et supprimer des caractères de contrôle dans un fichier texte

J’ai un fichier .txt qui a des caractères de contrôle associés à l’adresse e-mail. Certains trucs en ligne cette @ ãgmail.com. Il peut y avoir plusieurs instances de ceci et plusieurs instances d’autres caractères de contrôle. Y a-t-il un moyen de les trouver d’abord et de les supprimer ensuite?

un morceau de code c # – pas très optimisé pour un grand nombre de caractères de contrôle. un indice pour commencer:

StreamReader sr = new StreamReader(@"c:\temp.data\big_file_with_unwanted_chars.txt", Encoding.Default); StreamWriter sw = new StreamWriter(@"c:\temp.data\big_file_without_any_evil_chars.txt", false, Encoding.Default); ssortingng al; while (!sr.EndOfStream) { al = sr.ReadLine(); al = al.Replace("ä", ""); al = al.Replace("#", ""); sw.WriteLine(al); } sw.Close(); sr.Close(); 

Voici un truc que j’ai ramassé sur devdaily.com :

 tr -cd '\11\12\15\40-\176' < file-with-binary-chars > clean-file 

Cette commande supprime tout caractère qui n’est pas un onglet, un saut de ligne, un retour chariot ou dans la plage des caractères ASCII imprimables (espace dans ~).

Sous Windows, vous pouvez obtenir la commande tr partir des utilitaires GNU pour Win32 ou Cygwin .