As diferentes alternativas existem, não porque cada um pode fazer o mesmo que o outro (embora isso seja verdade para casos localizados, ou para linguagens de programação completas como Perl), mas sim porque eles podem fazer diferente coisas.
Osed não é muito adequado para o processamento de dados tabulares, e o uso de bash puro normalmente é mais doloroso do que se deseja. O awk opera quase trivialmente em dados tabulares, e também pode ser usado para escrever máquinas de estado pequeno. Passe algum tempo olhando para as várias soluções do awk no Stack Overflow para algumas idéias sobre o que ele pode fazer.