Acontece que o xonsh (ou Python) está engolindo o , então o sed realmente vê
's/([a-z]*)ing/ing/g
e sua saída é obviamente correta para essa entrada.
Eu abri um problema aqui sobre isso, mas a solução é usar uma string raw do Python:
$ echo 'testing' | sed -E r's/([a-z]*)ing/ing/g'
testing
Isto é preferível a escapar ( \1
) já que seria um erro em um shell POSIX em vez de continuar com o indesejado .
No entanto, com agradecimentos a @adqm , aspas duplas e também escape da barra invertida. portável entre xonsh e bash:
$ echo 'testing' | sed -E "s/([a-z]*)ing/ing/g"