sed -r не совместим с -i

У меня есть простой текстовый файл:

>cat a A=B 

Используя sed, я пытаюсь изменить это на:

 setenv AB 

Моя команда sed, которая не работает:

 >sed -ir 's/([^\=]+)\=(.*)/setenv \1 \2/' a sed: -e expression #1, char 30: invalid reference \2 on `s' command's RHS 

Однако те же слова команды, когда я удаляю опцию -i:

 >sed -r 's/([^\=]+)\=(.*)/setenv \1 \2/' a setenv AB 

У меня нет этой проблемы, когда я использую основное регулярное выражение:

 >sed -ir 's/\([^=]*\)=\(.*\)/setenv \1 \2/' a >cat a setenv AB 

Моя версия sed:

 >sed --version sed (GNU sed) 4.2.2 

Любые предложения о том, что может быть не так?

Опция -i GNU Sed несколько несовместима в том смысле, что может дополнительно принимать аргумент, указывающий суффикс резервной копии.

  -i[SUFFIX], --in-place[=SUFFIX] edit files in place (makes backup if SUFFIX supplied) 

Поэтому sed -ir 's/pattern/replacement' a означает «редактировать файл a на месте, создавая файл резервной копии ar », а не «редактировать файл a на месте, используя расширенный синтаксис регулярного выражения»

Вы хотите либо

 sed -i -r 's/pattern/replacement' a 

или (менее понятно ИМХО)

 sed -ri 's/pattern/replacement' a