Suponhamos que você esteja em um sistema antigo, como o HP-UX, que não tenha utilitários GNU, apenas o velho e original BSD ou AT & T "grep". Você poderia fazer algo assim:
#!/bin/sh
awk '/ORA-/ { print line1; print line2; print line3; print line4; print $0 }\
// {line1 = line2; line2 = line3; line3 = line4; line4 = $0}' $1
Sim, há muitas condições de borda que não acertam, mas o que você quer por nada? Além disso, como você está trabalhando em um sistema operacional e hardware antiquado e decodificado, provavelmente não tem a potência da CPU para lidar com erros.