while read line; do IFS='.' read lastname <<< $line;
possa ser melhorada, inclusive o grande mestre Júlio de uma sugestão que vai de encontro a esse caso numa thread recente. Tenho certeza que poderia adaptar ao seu caso e melhorar a performace.
Os trecho do sed com essa característica e da subtração que citou, poderia mudar desse formato: s/Mozilla-Status: 0001/Mozilla-Status:
0000/g; para algo assim:
Obs.: Na regex coloquei uma lista [E0-9] pois vi a ocorrência do caracter 'E', e isso me levanta suspeita que posse ser um formato hexadecimal, e se for seria melhor trocar por [A-F0-9].
Mas analisando o que foi passado no script original e pelas ocorrências do caracteres, a regex poderia se restringir no grupo a: \([E0-9][01248][0128]\) e a linha: s/Mozilla-Status: \([E0-9][0-9][0-9]\)7/Mozilla-Status: \16/g poderia ser dispensada pois não aparece nenhum que termina com 7