如何查找和删除文本文件中的控制字符

我有一个.txt文件,它具有与电子邮件地址相关联的控制字符。有些东西在这行@ãgmail.com。 可能有多个此实例和其他控制字符的多个实例。 有没有办法,我可以先find他们,然后删除它们?

一块c#代码 – 对于大量的控制字符不是非常优化的。 提示:

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); string al; while (!sr.EndOfStream) { al = sr.ReadLine(); al = al.Replace("ä", ""); al = al.Replace("#", ""); sw.WriteLine(al); } sw.Close(); sr.Close(); 

这是我从devdaily.com拿到的一个技巧:

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

该命令将删除不是制表符,换行符,回车符或可打印的ASCII字符范围内的任何字符(通过〜的空格)。

在Windows上,您可以从GNU Utilities for Win32或Cygwin获得tr命令。