A opção -i
do GNU Sed é um pouco não-conforme, pois pode opcionalmente aceitar um argumento especificando um sufixo de backup
-i[SUFFIX], --in-place[=SUFFIX] edit files in place (makes backup if SUFFIX supplied)
Portanto, sed -ir 's/pattern/replacement' a
significa "editar o arquivo a
no lugar, criando um arquivo de backup ar
" em vez de "editar o arquivo a
no local, usando a sintaxe de expressão regular estendida"
Você quer
sed -i -r 's/pattern/replacement' a
ou (IMHO menos claro)
sed -ri 's/pattern/replacement' a