工作中发现本地服务器和云服务生成的成果文件大小不同,两个文件都在11G以上,且有随机码,比较十分困难
为此需要做两件事情:
1.替换随机码
引文使用的是windows环境,自然想使用powershell去处理,但大文件替换,吃内存十分严重。卡死
Get-ChildItem C:\share\67 | ForEach-Object -Process{
if($_ -is [System.IO.FileInfo])
{
Write-Host($_.fullname);
$content = Get-Content -path $_.fullname
$newName=-join($_.fullname,'.new')
$content -Replace '\?\?\?0x[0-9A-F]*', '' | Out-File -Encoding utf8 $newName
}
}
后安装cygwin,使用linux的sed命令去处理。内存和CPU几乎不吃。
大文件查看命令 tail 和 head也非常实用。
sed 's/???0x[0-9A-F]*//g' out_analyze_data_getCPAType.txt > del_228_result.txt
tail -n 100 /etc/cron #显示最后100行数据
tail -n -100 /etc/cron #除了前99行不显示外,显示第100行到末尾行
2.比较两个大文件
本想使用LInux的diff命令,但内存依然耗尽。又想使用split命令按行切割,但考虑行数不一致,都否决了。必须两个大文件进行比较了 byond compare ,但运行时间超长12小时以上