我有一个.txt文件,其中包含与电子邮件地址关联的控制字符。有些东西排在这个@ãgmail.com。可能有多个此实例和其他控制字符的多个实例。有没有办法可以先找到它们然后删除它们?
答案 0 :(得分:4)
这是我从devdaily.com获取的一个技巧:
tr -cd '\11\12\15\40-\176' < file-with-binary-chars > clean-file
此命令删除任何不是制表符,换行符,回车符或可打印ASCII字符范围内的字符(空格到〜)。
在Windows上,您可以从GNU Utilities for Win32或Cygwin获取tr
命令。
答案 1 :(得分:3)
一段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();