Isn't that a basic function..
Obviamente, não é. Mas ainda é possível :
sed 's/a\([^a]*\($\|a[^a]*\($\|a[^a]*\($\|a[^a]*\($\|a\)\)\)\)\)/A/g'
Mais legível com -r , onde podemos eliminar as barras invertidas:
sed -r 's/a([^a]*($|a[^a]*($|a[^a]*($|a[^a]*($|a)))))/A/g'
i.e. a , seguido por qualquer número de não a , seguido por qualquer fim de linha ou outro a , seguido por qualquer número de não a , etc. Tudo após o primeiro a é lembrado em .
BTW, se o Perl estiver disponível, você pode usar:
perl -pe 'BEGIN { @A = qw(a A) } s/a/$A[not $i++ % 5]/g'
% é o operador de módulo. $ i é incrementado com cada correspondência, a negação do módulo é 1, 0, 0, 0, 0, 1, etc., que é usada como o índice em @A escolhe o a ou A .