我有一个包含一些非ascii字符的大文件。我需要找出那些记录。注意:我无法使用Notepad ++等打开文件。
我在cmd尝试了类似的东西:> findstr / R / N“[^ \ x00- \ x7F]”Test.txt
但这会返回不包含非ascii字符的额外行
字符示例:
Test.txt contains:
�
asdf
sdf asd
1231 sdfg dfg
Result:
1: ∩┐╜ ►←→ ☼ --Expected row
3:sdf asd --Unexpected row
4:1231 sdfg dfg --Unexpected row
答案 0 :(得分:0)
试试这个
set "F=1.txt" & echo var r=0,c=0,l,s=(new ActiveXObject("Scripting.FileSystemObject")).OpenTextFile(WScript.Arguments(0),1);while(!s.AtEndOfStream){++c;if(/[^^\r\n\x20-\x7f]/.test(l=s.ReadLine())){r=1;WScript.Echo(c+": "+l);}}s.Close();WScript.Quit(r);>"%TEMP%\1.js" & (call cscript /nologo "%TEMP%\1.js" "%F%") & del "%TEMP%\1.js" & set "F="
set "F=1.txt"
是要测试的文件。
echo ... >"%TEMP%\1.js"
创建一个JScript文件,该文件将读取%F%
并测试其是否包含/[^\r\n\x20-\x7f]/
符号。
cscript
启动创建的脚本。
del "%TEMP%\1.js" & set "F="
是一个清理工作。